@sogni-ai/sogni-intelligence-client 3.23.4 → 3.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/contracts/data/promptContracts.d.ts.map +1 -1
  2. package/dist/contracts/data/promptContracts.js +23 -10
  3. package/dist/contracts/data/promptContracts.js.map +1 -1
  4. package/dist/contracts/toolPromptMarkers.d.ts +5 -5
  5. package/dist/contracts/toolPromptMarkers.d.ts.map +1 -1
  6. package/dist/contracts/toolPromptMarkers.js +5 -5
  7. package/dist/contracts/toolPromptMarkers.js.map +1 -1
  8. package/dist/media/enhancementProfiles.d.ts +1 -1
  9. package/dist/media/enhancementProfiles.d.ts.map +1 -1
  10. package/dist/media/enhancementProfiles.js +0 -1
  11. package/dist/media/enhancementProfiles.js.map +1 -1
  12. package/dist/media/vendorModelPremium.d.ts +1 -1
  13. package/dist/media/vendorModelPremium.d.ts.map +1 -1
  14. package/dist/media/vendorModelPremium.js +2 -1
  15. package/dist/media/vendorModelPremium.js.map +1 -1
  16. package/dist/media/videoSettings.d.ts +20 -1
  17. package/dist/media/videoSettings.d.ts.map +1 -1
  18. package/dist/media/videoSettings.js +36 -1
  19. package/dist/media/videoSettings.js.map +1 -1
  20. package/dist/openai-tools/_manifests.generated.d.ts.map +1 -1
  21. package/dist/openai-tools/_manifests.generated.js +292 -73
  22. package/dist/openai-tools/_manifests.generated.js.map +1 -1
  23. package/dist/openai-tools/generation-tools.json +292 -73
  24. package/dist/public-skill-runtime/index.d.ts +19 -2
  25. package/dist/public-skill-runtime/index.d.ts.map +1 -1
  26. package/dist/public-skill-runtime/index.js +55 -2
  27. package/dist/public-skill-runtime/index.js.map +1 -1
  28. package/dist/schemas/tools/animate_photo.schema.json +59 -19
  29. package/dist/schemas/tools/generate_video.schema.json +66 -18
  30. package/dist/schemas/tools/sound_to_video.schema.json +41 -12
  31. package/dist/schemas/tools/video_to_video.schema.json +79 -13
  32. package/dist/skills/asset_reference_management/modelRefRegistry.d.ts.map +1 -1
  33. package/dist/skills/asset_reference_management/modelRefRegistry.js +25 -0
  34. package/dist/skills/asset_reference_management/modelRefRegistry.js.map +1 -1
  35. package/dist/skills/asset_reference_management/types.d.ts +1 -1
  36. package/dist/skills/asset_reference_management/types.d.ts.map +1 -1
  37. package/dist/tools/definitions/animate-photo/definition.d.ts.map +1 -1
  38. package/dist/tools/definitions/animate-photo/definition.js +23 -5
  39. package/dist/tools/definitions/animate-photo/definition.js.map +1 -1
  40. package/dist/tools/definitions/generate-video/definition.d.ts.map +1 -1
  41. package/dist/tools/definitions/generate-video/definition.js +32 -9
  42. package/dist/tools/definitions/generate-video/definition.js.map +1 -1
  43. package/dist/tools/definitions/sound-to-video/definition.d.ts.map +1 -1
  44. package/dist/tools/definitions/sound-to-video/definition.js +30 -5
  45. package/dist/tools/definitions/sound-to-video/definition.js.map +1 -1
  46. package/dist/tools/definitions/video-to-video/definition.d.ts.map +1 -1
  47. package/dist/tools/definitions/video-to-video/definition.js +43 -13
  48. package/dist/tools/definitions/video-to-video/definition.js.map +1 -1
  49. package/dist/tools/index.d.ts +2 -0
  50. package/dist/tools/index.d.ts.map +1 -1
  51. package/dist/tools/index.js +9 -2
  52. package/dist/tools/index.js.map +1 -1
  53. package/dist/tools/shared/modelRegistry.d.ts.map +1 -1
  54. package/dist/tools/shared/modelRegistry.js +4 -0
  55. package/dist/tools/shared/modelRegistry.js.map +1 -1
  56. package/dist/tools/shared/wan3References.d.ts +36 -0
  57. package/dist/tools/shared/wan3References.d.ts.map +1 -0
  58. package/dist/tools/shared/wan3References.js +78 -0
  59. package/dist/tools/shared/wan3References.js.map +1 -0
  60. package/dist/utils/videoModelIds.d.ts +2 -1
  61. package/dist/utils/videoModelIds.d.ts.map +1 -1
  62. package/dist/utils/videoModelIds.js +12 -0
  63. package/dist/utils/videoModelIds.js.map +1 -1
  64. package/dist-esm/contracts/data/promptContracts.js +23 -10
  65. package/dist-esm/contracts/data/promptContracts.js.map +1 -1
  66. package/dist-esm/contracts/toolPromptMarkers.js +5 -5
  67. package/dist-esm/contracts/toolPromptMarkers.js.map +1 -1
  68. package/dist-esm/media/enhancementProfiles.js +0 -1
  69. package/dist-esm/media/enhancementProfiles.js.map +1 -1
  70. package/dist-esm/media/vendorModelPremium.js +2 -1
  71. package/dist-esm/media/vendorModelPremium.js.map +1 -1
  72. package/dist-esm/media/videoSettings.js +35 -0
  73. package/dist-esm/media/videoSettings.js.map +1 -1
  74. package/dist-esm/openai-tools/_manifests.generated.js +292 -73
  75. package/dist-esm/openai-tools/_manifests.generated.js.map +1 -1
  76. package/dist-esm/openai-tools/generation-tools.json +292 -73
  77. package/dist-esm/public-skill-runtime/index.js +52 -1
  78. package/dist-esm/public-skill-runtime/index.js.map +1 -1
  79. package/dist-esm/schemas/tools/animate_photo.schema.json +59 -19
  80. package/dist-esm/schemas/tools/generate_video.schema.json +66 -18
  81. package/dist-esm/schemas/tools/sound_to_video.schema.json +41 -12
  82. package/dist-esm/schemas/tools/video_to_video.schema.json +79 -13
  83. package/dist-esm/skills/asset_reference_management/modelRefRegistry.js +25 -0
  84. package/dist-esm/skills/asset_reference_management/modelRefRegistry.js.map +1 -1
  85. package/dist-esm/tools/definitions/animate-photo/definition.js +23 -5
  86. package/dist-esm/tools/definitions/animate-photo/definition.js.map +1 -1
  87. package/dist-esm/tools/definitions/generate-video/definition.js +32 -9
  88. package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -1
  89. package/dist-esm/tools/definitions/sound-to-video/definition.js +30 -5
  90. package/dist-esm/tools/definitions/sound-to-video/definition.js.map +1 -1
  91. package/dist-esm/tools/definitions/video-to-video/definition.js +43 -13
  92. package/dist-esm/tools/definitions/video-to-video/definition.js.map +1 -1
  93. package/dist-esm/tools/index.js +1 -0
  94. package/dist-esm/tools/index.js.map +1 -1
  95. package/dist-esm/tools/shared/modelRegistry.js +4 -0
  96. package/dist-esm/tools/shared/modelRegistry.js.map +1 -1
  97. package/dist-esm/tools/shared/wan3References.js +71 -0
  98. package/dist-esm/tools/shared/wan3References.js.map +1 -0
  99. package/dist-esm/utils/videoModelIds.js +11 -0
  100. package/dist-esm/utils/videoModelIds.js.map +1 -1
  101. package/package.json +3 -3
@@ -14,7 +14,7 @@ exports.definition = {
14
14
  type: "function",
15
15
  function: {
16
16
  name: "generate_video",
17
- description: 'Generate a video from text or Seedance multimodal references. LTX 2.5 is the default and generates audio natively; LTX 2.3 remains available as rollback and also generates audio natively (dialogue, sounds, ambient music) — describe audio in the prompt. If the user provides exact speech, include it in double quotes; if they only imply speech, describe the performance and voice without inventing quoted words. Never use placeholders such as "while speaking", "dialogue begins", "explaining", or "final line lands". PERSONA VOICE: Only when the user explicitly asks to use/clone a registered persona voice clip, call resolve_personas first, then set voicePersonaName to select which persona\'s voice clip to use. Do not set voicePersonaName for ordinary character dialogue or inferred voices; describe those voices in the prompt for native LTX audio. For cross-persona narration (e.g. David narrates a video of Aleyna), resolve both personas and set voicePersonaName to the narrator only if that registered voice was requested. Persona voice requires ltx23 because LTX 2.5 has no compatible ID-LoRA and WAN 2.2 does not support voice identity. For non-Seedance syncing to a specific song or audio track, use sound_to_video instead. For non-Seedance animation from a locked source photo, use animate_photo. Do NOT use for My Personas unless generating a Seedance reference-based video — standard persona videos use resolve_personas → edit_image → animate_photo. SEEDANCE DEFAULT: For seedance2, seedance2-mini, or seedance2-5, default to exactly one video (4-15s on 2.0/Mini, 4-30s on seedance2-5) unless the user explicitly asks for multiple separate outputs. Multiple beats, shots, or scene descriptions in one up-to-15s Seedance prompt are still one video. If the user requests one continuous Seedance video longer than 15s, prefer seedance2-5, which renders up to 30s in a single call; beyond 30s (or on 2.0/Mini) preserve the requested total duration in the prompt/context and let chat orchestration split it into supported segment renders and stitch them instead of clamping it to a short excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance generate_video call by default; do not extract panels with edit_image and do not animate the storyboard sheet with LTX unless the user explicitly asks for separate non-Seedance clips. Seedance loose image, video, and audio references go through this tool; do not use animate_photo sourceImageIndex/frameRole/endImageIndex for Seedance. If an uploaded video is the source clip to transform, upscale, enhance, restyle, or remaster, use video_to_video with controlMode="seedance-v2v" instead of generate_video referenceVideoIndices. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2-mini" instead of this tool unless the user asks for full Seedance. Use referenceAudioIndices here only when audio is a loose reference under an image/video-anchored Seedance shot. For Seedance, every image — first frame, last frame, or loose reference — is passed through referenceImageIndices (auto-uploaded as referenceImageUrls). Anchor frame intent in the prompt with @Image tags such as "Use @Image1 as the opening shot reference. Begin the video with a composition, subject placement, lighting, mood, and camera framing that closely match @Image1." (or @Image2 as the final shot reference). For seamless-loop or "first frame and last frame identical" requests with a single uploaded image, anchor it explicitly as both: "Use @Image1 as both the first frame and last frame so the video loops cleanly back to the opening composition." Assign each useful @Image/@Video/@Audio tag a role. APPROVED STORYBOARD PRODUCTION: When the user asks for a production workflow from an approved storyboard, the chat orchestrator should use the durable CampaignStoryboard contract: render the composite board, audit it, generate per-scene GPT Image 2 keyframes, then render Seedance scene clips and stitch them. Do not replace that with a generic storyboard-reference video unless the user asks for a fast draft. PARTIAL VIDEO EDITS: Do NOT call generate_video to re-render an existing rendered/uploaded video just to change part of it (the bumper, the intro, the end card, a single scene, the last few seconds, etc.). Use replace_video_segment for that — it preserves the unchanged portion, keeps the original audio outside the replaced window, and costs far less. Likewise use extend_video to add new time to the end without rewriting the rest. If the request is vague, ask about vision/mood/style first. Only call once you have clear creative intent.',
17
+ description: 'Generate a video from text or Seedance multimodal references. LTX 2.5 is the default and generates audio natively; LTX 2.3 remains available as rollback and also generates audio natively (dialogue, sounds, ambient music) — describe audio in the prompt. If the user provides exact speech, include it in double quotes; if they only imply speech, describe the performance and voice without inventing quoted words. Never use placeholders such as "while speaking", "dialogue begins", "explaining", or "final line lands". PERSONA VOICE: Only when the user explicitly asks to use/clone a registered persona voice clip, call resolve_personas first, then set voicePersonaName to select which persona\'s voice clip to use. Do not set voicePersonaName for ordinary character dialogue or inferred voices; describe those voices in the prompt for native LTX audio. For cross-persona narration (e.g. David narrates a video of Aleyna), resolve both personas and set voicePersonaName to the narrator only if that registered voice was requested. Persona voice requires ltx23 because LTX 2.5 has no compatible ID-LoRA and WAN 2.2 does not support voice identity. For non-Seedance syncing to a specific song or audio track, use sound_to_video instead. For non-Seedance animation from a locked source photo, use animate_photo. Do NOT use for My Personas unless generating a Seedance reference-based video — standard persona videos use resolve_personas → edit_image → animate_photo. SEEDANCE DEFAULT: For seedance2, seedance2-mini, or seedance2-5, default to exactly one video (4-15s on 2.0/Mini, 4-30s on seedance2-5) unless the user explicitly asks for multiple separate outputs. Multiple beats, shots, or scene descriptions in one up-to-15s Seedance prompt are still one video. If the user requests one continuous Seedance video longer than 15s, prefer seedance2-5, which renders up to 30s in a single call; beyond 30s (or on 2.0/Mini) preserve the requested total duration in the prompt/context and let chat orchestration split it into supported segment renders and stitch them instead of clamping it to a short excerpt. Uploaded/generated storyboard, shot-sheet, or trailer-concept images used as Seedance references should become one Seedance generate_video call by default; do not extract panels with edit_image and do not animate the storyboard sheet with LTX unless the user explicitly asks for separate non-Seedance clips. Seedance loose image, video, and audio references go through this tool; do not use animate_photo sourceImageIndex/frameRole/endImageIndex for Seedance. If an uploaded video is the source clip to transform, upscale, enhance, restyle, or remaster, use video_to_video with controlMode="seedance-v2v" instead of generate_video referenceVideoIndices. If the uploaded audio is the primary sync target, lip-sync target, or requested as sound-to-video/audio-sync, use sound_to_video with videoModel="seedance2-mini" instead of this tool unless the user asks for full Seedance. Use referenceAudioIndices here only when audio is a loose reference under an image/video-anchored Seedance shot. For Seedance, every image — first frame, last frame, or loose reference — is passed through referenceImageIndices (auto-uploaded as referenceImageUrls). Anchor frame intent in the prompt with @Image tags such as "Use @Image1 as the opening shot reference. Begin the video with a composition, subject placement, lighting, mood, and camera framing that closely match @Image1." (or @Image2 as the final shot reference). For seamless-loop or "first frame and last frame identical" requests with a single uploaded image, anchor it explicitly as both: "Use @Image1 as both the first frame and last frame so the video loops cleanly back to the opening composition." Assign each useful @Image/@Video/@Audio tag a role. APPROVED STORYBOARD PRODUCTION: When the user asks for a production workflow from an approved storyboard, the chat orchestrator should use the durable CampaignStoryboard contract: render the composite board, audit it, generate per-scene GPT Image 2 keyframes, then render Seedance scene clips and stitch them. Do not replace that with a generic storyboard-reference video unless the user asks for a fast draft. PARTIAL VIDEO EDITS: Do NOT call generate_video to re-render an existing rendered/uploaded video just to change part of it (the bumper, the intro, the end card, a single scene, the last few seconds, etc.). Use replace_video_segment for that — it preserves the unchanged portion, keeps the original audio outside the replaced window, and costs far less. Likewise use extend_video to add new time to the end without rewriting the rest. If the request is vague, ask about vision/mood/style first. Only call once you have clear creative intent. WAN 3 uses the exact selector wan3.0-video: use this tool for text-to-video or loose Image 1/Video 1/Audio 1 references; use animate_photo for native first/last frames, sound_to_video when audio drives timing, and video_to_video for source-video edits.',
18
18
  parameters: {
19
19
  type: "object",
20
20
  properties: {
@@ -62,13 +62,34 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
62
62
  },
63
63
  duration: {
64
64
  type: "number",
65
- description: "Video duration in seconds. Default: 5. Range: 2-30; the usable window is per-model and the host clamps to it: LTX 2.3 and WAN accept 2-20, Seedance 2.0/Mini accept 4-15, and Seedance 2.5 accepts 4-30 — only seedance2-5 can use the 16-30s part of this range. Use when the user explicitly requests a specific length.",
65
+ description: "Video duration in seconds. Default: 5. Per-model range: LTX 2.3 and LTX 2.5 = 2-20s; Wan 3 = 2-30s; Seedance 2.0 and Mini = 4-15s; Seedance 2.5 = 4-30s; HappyHorse 1.1 = 3-15s. Use when the user explicitly requests a specific length. MiniMax H3 is quantized to a 17-frame grid at a fixed 24 fps and renders 124-362 frames, so an H3 clip runs 5.17-15.08 seconds and a requested length outside that window snaps to the nearest valid H3 length.",
66
66
  minimum: 2,
67
67
  maximum: 30,
68
68
  },
69
+ smartDuration: {
70
+ type: "boolean",
71
+ description: "Wan 3 only. Set true to let Wan 3 choose an output length from 2-30 seconds. Do not also set duration. Sogni reserves the 30-second maximum before generation and settles the completed job down to Alibaba's reported output duration.",
72
+ },
73
+ ratio: {
74
+ type: "string",
75
+ enum: ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"],
76
+ description: 'Wan 3 only. Output ratio. Use "adaptive" to inherit source/context shape; extension requires adaptive. Omit for automatic behavior.',
77
+ },
78
+ watermark: {
79
+ type: "boolean",
80
+ description: "Wan 3 only. Add Alibaba's visible watermark. Defaults to false.",
81
+ },
82
+ referenceFileUrl: {
83
+ type: "string",
84
+ description: "Wan 3 only. One public HTTPS document URL for context (DOCX/DOC/XLSX/XLS/PPTX/PPT/PDF/TXT/KEY/PAGES/NUMBERS/Markdown, up to 100 MB; PDF/DOCX/DOC/PPTX/PPT/KEY/PAGES up to 50 pages). Mutually exclusive with referenceLinkUrl and first/last-frame inputs.",
85
+ },
86
+ referenceLinkUrl: {
87
+ type: "string",
88
+ description: "Wan 3 only. One public HTTPS webpage URL for context. Mutually exclusive with referenceFileUrl and first/last-frame inputs.",
89
+ },
69
90
  negativePrompt: {
70
91
  type: "string",
71
- description: "Advanced LTX/WAN only. Use this field only when the user explicitly asks to set a separate negative prompt. MiniMax H3 has no negative-prompt input; put requested exclusions in prompt. Do not set for MiniMax H3, Seedance, or HappyHorse.",
92
+ description: "Advanced LTX/WAN only. Use this field only when the user explicitly asks to set a separate negative prompt. MiniMax H3 has no negative-prompt input; put requested exclusions in prompt. Do not set for MiniMax H3, Seedance, or HappyHorse.\n\nWan 3 has no negativePrompt request field; do not set this for wan3.0-video.",
72
93
  },
73
94
  videoModel: {
74
95
  type: "string",
@@ -86,31 +107,33 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
86
107
  "happyhorse-1.1-r2v",
87
108
  "minimax-h3-r2v",
88
109
  "minimax-h3-r2v-turbo",
110
+ "wan3.0-video",
89
111
  ],
90
112
  description: '"ltx25" (default): LTX 2.5 with native audio; Fast, HQ, and Pro currently use the release-validated official Distilled INT8 workflow. The Dev checkpoints are not publicly routed until upstream publishes and Sogni validates an official ComfyUI Dev recipe. ' +
91
113
  'Video model. "ltx23": LTX 2.3 rollback with native audio. "wan22": quick simple motion without audio. "minimax-h3-t2v": standard 20-step MiniMax H3 text-to-video; "minimax-h3-t2v-turbo": 4-step Turbo text-to-video. Both use native audio, fixed 24fps, 5.17-15.08s, and a 768p-class 32px-grid canvas; use animate_photo for H3 image-conditioned modes. Base and Turbo T2V/I2V/FLF2V prompts use the exact ordered fields integrated_multimodal_description, overall_soundscape, and non_diegetic_music; I2V/FLF2V prepend the official alignment line. "minimax-h3-r2v": standard 20-step MiniMax H3 reference-to-video; "minimax-h3-r2v-turbo": the dedicated LightX2V 4-step Ref2VA Turbo workflow using Euler/simple and a 960x544 default. Both accept up to 9 images, 3 videos, and 3 audios (12 files total); at least one visual reference (image or video) is required and audio alone is invalid. Select references with referenceImageIndices/referenceVideoIndices/referenceAudioIndices and address them with the official <Subject N>/<Picture N>/<Video N>/<Audio N> semantics. Seedance quality is selected only by model: use "seedance2-mini" for Seedance 2.0 Mini or faster/lower-cost 720p iteration, and use "seedance2" for the full Seedance 2.0 model, explicit full-quality requests, 1080p/4K requests, or generated/uploaded storyboard images unless the user explicitly asks for a draft or Mini. Do not use Default Media Quality Fast/HQ/Pro or targetResolution to represent Seedance quality. "seedance2-5": Seedance 2.5, the newest Seedance generation — 480p and 720p ONLY (it cannot render 1080p or 4K), 4-30s per clip at a fixed 24 fps, native audio, first-and-last-frame conditioning, and a much larger reference budget than the 2.0 family: up to 30 images, 10 videos, and 10 audios, with up to 50 reference media files total, subject to those per-modality caps. Choose "seedance2-5" when the user asks for Seedance 2.5, wants a single continuous Seedance clip longer than 15s (2.5 renders up to 30s in one call instead of being split and stitched), or wants a first-and-last-frame Seedance transition. Keep "seedance2" for 1080p/4K requests, which Seedance 2.5 cannot satisfy. ' +
92
114
  toolPromptMarkers_js_1.SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE +
93
115
  ' ' +
94
- toolPromptMarkers_js_1.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION,
116
+ toolPromptMarkers_js_1.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION +
117
+ ' "wan3.0-video" is Alibaba Wan 3: one canonical premium-vendor model for text, first/last frames, loose multimodal references, audio-driven generation, document/web context, editing, and extension. It renders 2-30s or smart duration at fixed 30 fps with optional native audio, prompt expansion control, optional watermark, 480p/720p/1080p, and adaptive/16:9/4:3/1:1/3:4/9:16 ratios. It accepts up to 10 images, 5 videos, 5 audios, one file, or one webpage. Do not send negativePrompt. Use animate_photo for native first/last frames, generate_video for text or loose references, sound_to_video when audio drives timing, and video_to_video with controlMode="seedance-v2v" for edits or extensions.',
95
118
  },
96
119
  generateAudio: {
97
120
  type: "boolean",
98
- description: "Whether the returned video should include generated/native audio. Omit to include audio by default; set false only when the user explicitly asks for silent output or no audio. Supported by LTX, MiniMax H3, and Seedance; not supported by WAN or HappyHorse.",
121
+ description: "Whether the returned video should include generated/native audio. Omit to include audio by default; set false only when the user explicitly asks for silent output or no audio. Supported by LTX, MiniMax H3, and Seedance; not supported by WAN or HappyHorse.\n\nWan 3 supports this toggle; omit it for audio-on by default or set false only for an explicitly silent result.",
99
122
  },
100
123
  referenceImageIndices: {
101
124
  type: "array",
102
125
  items: { type: "number" },
103
- description: "Seedance or MiniMax H3 r2v image references. Use negative indices for uploaded images and non-negative indices for generated image results. Seedance uses @Image tags. H3 Ref2VA requires at least one visual reference—an image or video—and uses the official <Subject N>/<Picture N> semantics; these are loose references, not locked first frames.",
126
+ description: "Seedance or MiniMax H3 r2v image references. Use negative indices for uploaded images and non-negative indices for generated image results. Seedance uses @Image tags. H3 Ref2VA requires at least one visual reference—an image or video—and uses the official <Subject N>/<Picture N> semantics; these are loose references, not locked first frames. Wan 3 loose images use Image 1, Image 2, and so on, with up to 10 images.",
104
127
  },
105
128
  referenceVideoIndices: {
106
129
  type: "array",
107
130
  items: { type: "number" },
108
- description: 'Seedance or MiniMax H3 r2v loose video references. Use negative indices for uploaded videos and non-negative indices for generated video results. Seedance uses @Video tags; H3 uses <Video 1>, <Video 2>, and so on in selection order. A video may be the only H3 Ref2VA visual reference. Do not use this for source-video transforms; use video_to_video instead.',
131
+ description: 'Seedance or MiniMax H3 r2v loose video references. Use negative indices for uploaded videos and non-negative indices for generated video results. Seedance uses @Video tags; H3 uses <Video 1>, <Video 2>, and so on in selection order. A video may be the only H3 Ref2VA visual reference. Do not use this for source-video transforms; use video_to_video instead. Wan 3 loose videos use Video 1, Video 2, and so on, with up to 5 videos.',
109
132
  },
110
133
  referenceAudioIndices: {
111
134
  type: "array",
112
135
  items: { type: "number" },
113
- description: 'Seedance or MiniMax H3 r2v loose audio references. Use negative indices for uploaded audio files and non-negative indices for generated audio results. Seedance uses @Audio tags; H3 uses <Audio 1>, <Audio 2>, and so on in selection order. H3 Ref2VA audio may accompany an image or video, but audio alone is invalid.',
136
+ description: 'Seedance or MiniMax H3 r2v loose audio references. Use negative indices for uploaded audio files and non-negative indices for generated audio results. Seedance uses @Audio tags; H3 uses <Audio 1>, <Audio 2>, and so on in selection order. H3 Ref2VA audio may accompany an image or video, but audio alone is invalid. Wan 3 loose audios use Audio 1, Audio 2, and so on, with up to 5 audios.',
114
137
  },
115
138
  width: {
116
139
  type: "number",
@@ -122,7 +145,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
122
145
  },
123
146
  targetResolution: {
124
147
  type: "number",
125
- description: 'Short-side video resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", "1080p", "2160p", or "4K" without exact pixels or an output orientation. This is resolution only, not a Seedance quality tier: Seedance quality is selected by videoModel ("seedance2", "seedance2-mini", or "seedance2-5"). Seedance 2.0 full supports 4K; Seedance Mini and Seedance 2.5 support 480p/720p only, so never set 1080p or 4K for "seedance2-5". Do not set targetResolution from Default Media Quality Fast/HQ/Pro. If omitted for Seedance, the host uses the selected model default. This preserves/inherits the current video shape instead of forcing landscape. Do NOT set width, height, or exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait", "720p landscape", "4K portrait", or "4K landscape", use exact width/height/aspectRatio instead.',
148
+ description: 'Short-side video resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", "1080p", "2160p", or "4K" without exact pixels or an output orientation. This is resolution only, not a Seedance quality tier: Seedance quality is selected by videoModel ("seedance2" vs "seedance2-mini" vs "seedance2-5"). Seedance 2.0 full supports 4K; Seedance Mini and Seedance 2.5 support 480p/720p only, so never set 1080p or 4K for "seedance2-5". Wan 3 supports exactly 480p, 720p, and 1080p. HappyHorse supports only 720p and 1080p. Never set 4K for Wan 3 or HappyHorse. MiniMax H3 renders inside a 1344x768 pixel budget on a 32px grid, so use 768 for H3 and never 1080p or 4K. Do not set targetResolution from Default Media Quality Fast/HQ/Pro. If omitted for Seedance, Wan 3, HappyHorse, or MiniMax H3, the host uses the selected model default. This preserves/inherits the current video shape instead of forcing landscape. Do NOT set width, height, or exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait", "720p landscape", "4K portrait", or "4K landscape", use exact width/height/aspectRatio instead.',
126
149
  },
127
150
  numberOfVariations: {
128
151
  type: "number",
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,eAAO,MAAM,UAAU,EAAE,cAqGxB,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWlD,eAAO,MAAM,UAAU,EAAE,cA8HxB,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.definition = void 0;
4
4
  const toolPromptMarkers_js_1 = require("../../../contracts/toolPromptMarkers.js");
5
5
  const index_js_1 = require("../../../media/index.js");
6
+ const WAN3_VIDEO_MODEL_GUIDANCE = '"wan3.0-video" is Alibaba Wan 3: one canonical premium-vendor model for text-to-video, first-frame and first+last-frame animation, loose multimodal references, audio-driven generation, and uploaded-video editing/extension. It renders 2-30s at fixed 30 fps with optional native audio, supports 480p/720p/1080p and 16:9/4:3/1:1/3:4/9:16, accepts up to 10 reference images, 5 reference videos, and 5 reference audios, and uses plain per-type prompt labels Image 1, Video 1, and Audio 1. Do not send negativePrompt. Use animate_photo for native first/last frames, generate_video for text or loose references, sound_to_video when audio is the primary driver, and video_to_video with controlMode="seedance-v2v" for edits or extensions.';
6
7
  exports.definition = {
7
8
  type: "function",
8
9
  function: {
@@ -43,7 +44,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
43
44
  },
44
45
  negativePrompt: {
45
46
  type: "string",
46
- description: "Advanced LTX 2.5/LTX 2.3/WAN only. The LTX A2V and IA2V workflows accept this separate negative prompt. Use it only when the user explicitly asks to set one. Do not set for Seedance.",
47
+ description: "Advanced LTX 2.5/LTX 2.3/WAN only. The LTX A2V and IA2V workflows accept this separate negative prompt. Use it only when the user explicitly asks to set one. Do not set for Seedance.\n\nWan 3 has no negativePrompt request field; do not set this for wan3.0-video.",
47
48
  },
48
49
  audioSourceIndex: {
49
50
  type: "number",
@@ -60,17 +61,39 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
60
61
  },
61
62
  duration: {
62
63
  type: "number",
63
- description: "Video duration in seconds. Default: 5. Range: 2-30; the usable window is per-model and the host clamps to it: LTX 2.3 and WAN accept 2-20, Seedance 2.0/Mini accept 4-15, and Seedance 2.5 accepts 4-30 — only seedance2-5 can use the 16-30s part of this range. For music videos, use the MAXIMUM duration the selected model allows (20 for LTX/WAN, 30 for \"seedance2-5\") since the audio is always longer than the video limit. Use when the user explicitly requests a specific length.",
64
+ description: "Video duration in seconds. Default: 5. Per-model range: LTX/WAN 2.2 = 2-20s; Wan 3 = 2-30s; Seedance 2.0 and Mini = 4-15s; Seedance 2.5 = 4-30s. For music videos, use the maximum duration the selected model allows because the audio is usually longer than the video limit. Use when the user explicitly requests a specific length.",
64
65
  minimum: 2,
65
66
  maximum: 30,
66
67
  },
68
+ smartDuration: {
69
+ type: "boolean",
70
+ description: "Wan 3 only. Let the model choose 2-30 seconds. Do not also set duration. Sogni reserves 30 seconds and settles down to the provider-reported duration.",
71
+ },
72
+ ratio: {
73
+ type: "string",
74
+ enum: ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"],
75
+ description: 'Wan 3 only. Output ratio; "adaptive" derives it from the input.',
76
+ },
77
+ watermark: {
78
+ type: "boolean",
79
+ description: "Wan 3 only. Add Alibaba's visible watermark. Defaults to false.",
80
+ },
81
+ referenceFileUrl: {
82
+ type: "string",
83
+ description: "Wan 3 only. One public HTTPS document URL for additional audio-driven context (DOCX/DOC/XLSX/XLS/PPTX/PPT/PDF/TXT/KEY/PAGES/NUMBERS/Markdown, up to 100 MB; PDF/DOCX/DOC/PPTX/PPT/KEY/PAGES up to 50 pages). Mutually exclusive with referenceLinkUrl.",
84
+ },
85
+ referenceLinkUrl: {
86
+ type: "string",
87
+ description: "Wan 3 only. One public HTTPS webpage URL for additional audio-driven context. Mutually exclusive with referenceFileUrl.",
88
+ },
67
89
  videoModel: {
68
90
  type: "string",
69
- enum: ["wan-s2v", "seedance2", "seedance2-mini", "seedance2-5", "ltx25-ia2v", "ltx25-a2v", "ltx23-ia2v", "ltx23-a2v"],
91
+ enum: ["wan-s2v", "seedance2", "seedance2-mini", "seedance2-5", "ltx25-ia2v", "ltx25-a2v", "ltx23-ia2v", "ltx23-a2v", "wan3.0-video"],
70
92
  description: '"ltx25-ia2v" (default with image) and "ltx25-a2v" (default without image): LTX 2.5 image+audio and audio-only modes; Fast, HQ, and Pro currently use the release-validated official Distilled INT8 workflows. The Dev checkpoints are not publicly routed until upstream publishes and Sogni validates official ComfyUI Dev recipes. ' +
71
93
  'Video model. "ltx23-ia2v" (rollback with image): LTX 2.3 image+audio to video, audio-reactive with a reference image; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "ltx23-a2v" (rollback without image): LTX 2.3 audio-only to video, no image needed, creates video purely from text prompt + audio with the same quality-tier routing. "wan-s2v": WAN 2.2 sound-to-video, best for lip-sync with a face image, fast 4-step. "seedance2": full Seedance 2.0 audio-reference video, 4-15s. "seedance2-mini": Seedance 2.0 Mini, 720p cap, fastest/lower-cost Seedance option. Seedance quality is selected only by this model value: pick "seedance2-mini" for faster/lower-cost drafts or explicit Mini requests, and pick "seedance2" for full-quality Seedance or 1080p/4K. Do not infer the Seedance model from Default Media Quality Fast/HQ/Pro. "seedance2-5": Seedance 2.5, the newest Seedance generation — 480p and 720p ONLY (it cannot render 1080p or 4K), 4-30s per clip at a fixed 24 fps, native audio, first-and-last-frame conditioning, and a much larger reference budget than the 2.0 family: up to 30 images, 10 videos, and 10 audios, with up to 50 reference media files total, subject to those per-modality caps. Choose "seedance2-5" when the user asks for Seedance 2.5, wants a single continuous Seedance clip longer than 15s (2.5 renders up to 30s in one call instead of being split and stitched), or wants a first-and-last-frame Seedance transition. Keep "seedance2" for 1080p/4K requests, which Seedance 2.5 cannot satisfy. ' +
72
94
  toolPromptMarkers_js_1.SEEDANCE_TOOL_AUDIO_REFERENCE_GUIDANCE +
73
- ' Omit to auto-select based on whether an image is present.',
95
+ ' Omit to auto-select based on whether an image is present. ' +
96
+ WAN3_VIDEO_MODEL_GUIDANCE,
74
97
  },
75
98
  generateAudio: {
76
99
  type: "boolean",
@@ -84,7 +107,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
84
107
  },
85
108
  targetResolution: {
86
109
  type: "number",
87
- description: 'Short-side video resolution target in pixels. Use ONLY when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact pixels or an output orientation. This preserves the source/reference aspect ratio. Do NOT set exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait" or "720p landscape", use exact-pixel aspectRatio instead.',
110
+ description: 'Short-side video resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", "1080p", "2160p", or "4K" without exact pixels or an output orientation. This preserves the source/reference aspect ratio. Do NOT set exact-pixel aspectRatio for bare named resolution requests. If the user says "720p portrait", "720p landscape", "4K portrait", or "4K landscape", use exact-pixel aspectRatio instead.',
88
111
  },
89
112
  aspectRatio: {
90
113
  type: "string",
@@ -95,4 +118,6 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
95
118
  },
96
119
  },
97
120
  };
121
+ exports.definition.function.description +=
122
+ ' Use videoModel="wan3.0-video" when the user explicitly requests Wan 3 audio-driven video.';
98
123
  //# sourceMappingURL=definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AACjD,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,s6DAAs6D;QACx6D,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uDAAgC;;;;;;;;;;;;;;;;;;;;kdAoBgb;iBACzc;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wLAAwL;iBAC3L;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yPAAyP;iBAC5P;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0OAA0O;iBAC7O;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+OAA+O;oBACjP,OAAO,EAAE,CAAC;iBACX;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,ieAAie;oBACne,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;oBACrH,WAAW,EACT,uUAAuU;wBACvU,siDAAsiD;wBACtiD,6DAAsC;wBACtC,4DAA4D;iBAC/D;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,mQAAmQ;iBACtQ;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;oBACnS,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,6YAA6Y;iBAChZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/sound-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AACjD,sDAAmE;AAEnE,MAAM,yBAAyB,GAC7B,2tBAA2tB,CAAC;AAEjtB,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,s6DAAs6D;QACx6D,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uDAAgC;;;;;;;;;;;;;;;;;;;;kdAoBgb;iBACzc;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wQAAwQ;iBAC3Q;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yPAAyP;iBAC5P;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0OAA0O;iBAC7O;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+OAA+O;oBACjP,OAAO,EAAE,CAAC;iBACX;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0UAA0U;oBAC5U,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,wJAAwJ;iBAC3J;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;oBACvD,WAAW,EAAE,iEAAiE;iBAC/E;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iEAAiE;iBAC/E;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wPAAwP;iBAC3P;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yHAAyH;iBAC5H;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC;oBACrI,WAAW,EACT,uUAAuU;wBACvU,siDAAsiD;wBACtiD,6DAAsC;wBACtC,6DAA6D;wBAC7D,yBAAyB;iBAC5B;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,mQAAmQ;iBACtQ;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,iSAAiS;oBACnS,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,ubAAub;iBAC1b;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC;AAEF,kBAAU,CAAC,QAAQ,CAAC,WAAW;IAC7B,4FAA4F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,eAAO,MAAM,UAAU,EAAE,cAkIxB,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUlD,eAAO,MAAM,UAAU,EAAE,cAiKxB,CAAC"}
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.definition = void 0;
4
4
  const toolPromptMarkers_js_1 = require("../../../contracts/toolPromptMarkers.js");
5
+ const WAN3_VIDEO_MODEL_GUIDANCE = '"wan3.0-video" is Alibaba Wan 3: one canonical premium-vendor model for text-to-video, first-frame and first+last-frame animation, loose multimodal references, audio-driven generation, and uploaded-video editing/extension. It renders 2-30s at fixed 30 fps with optional native audio, supports 480p/720p/1080p and 16:9/4:3/1:1/3:4/9:16, accepts up to 10 reference images, 5 reference videos, and 5 reference audios, and uses plain per-type prompt labels Image 1, Video 1, and Audio 1. Do not send negativePrompt. Use animate_photo for native first/last frames, generate_video for text or loose references, sound_to_video when audio is the primary driver, and video_to_video with controlMode="seedance-v2v" for edits or extensions.';
5
6
  exports.definition = {
6
7
  type: "function",
7
8
  function: {
8
9
  name: "video_to_video",
9
- description: 'Transform an existing video using AI. Uses WAN 2.2 Animate (move/replace) with a reference image, LTX 2.5 V2V controls by default (canny/pose/depth/detailer plus distilled inpaint/outpaint), LTX 2.3 as rollback, or Seedance V2V when explicitly requested. Requires an uploaded video file. Use when the user wants to animate a photo with video motion, replace subjects, restyle footage, extend its canvas, regenerate a region, or enhance quality.',
10
+ description: 'Transform an existing video using AI. Uses WAN 2.2 Animate (move/replace) with a reference image, LTX 2.5 V2V controls by default (canny/pose/depth/detailer plus distilled inpaint/outpaint), LTX 2.3 as rollback, or Seedance V2V when explicitly requested. LTX 2.5 Fast, HQ, and Pro use the release-validated official Distilled workflow for canny/pose/depth/detailer/inpaint/outpaint; Dev is not publicly routed until upstream publishes and Sogni validates an official ComfyUI Dev recipe. Requires an uploaded video file. Use when the user wants to animate a photo with video motion, replace subjects, restyle footage, extend its canvas, regenerate a region, or enhance quality. Wan 3 source-video editing and continuation uses videoModel="wan3.0-video" with controlMode="seedance-v2v".',
10
11
  parameters: {
11
12
  type: "object",
12
13
  properties: {
@@ -16,18 +17,18 @@ exports.definition = {
16
17
 
17
18
  ${toolPromptMarkers_js_1.LITERAL_SEEDANCE_PROMPT_OVERRIDE}
18
19
 
19
- For LTX 2.5 or 2.3 canny/depth/pose modes, the source video preserves composition, depth, or motion. Spend prompt detail on style, atmosphere, lighting, surface texture, color palette, scale, and pacing.
20
+ For LTX 2.5 or 2.3 canny/depth/pose modes, the source video preserves composition, depth, or motion. Spend prompt detail on style, atmosphere, lighting, surface texture, color palette, scale, and pacing. LTX 2.5 Fast, HQ, and Pro use the release-validated official Distilled workflow for canny/pose/depth/detailer/inpaint/outpaint; Dev is not publicly routed until upstream publishes and Sogni validates an official ComfyUI Dev recipe.
20
21
 
21
22
  Examples by mode:
22
23
  - animate-move (DEFAULT — WAN 2.2 Animate Move: applies camera/motion from source video to reference image): "Smooth cinematic camera movement following the subject through the scene."
23
24
  - animate-replace (WAN 2.2 Animate Replace: replaces the subject in the source video with the reference image): "The person from the reference photo performing the actions from the video."
24
- - canny (LTX-2.3 — edge-detection restyle): "Hand-drawn watercolor anime style with soft ink edges, muted teal and coral palette, rain mist, neon reflections, warm rim light, preserving original silhouettes and composition."
25
+ - canny (LTX 2.5 default; LTX 2.3 rollback — edge-detection restyle): "Hand-drawn watercolor anime style with soft ink edges, muted teal and coral palette, rain mist, neon reflections, warm rim light, preserving original silhouettes and composition."
25
26
  - pose (LTX 2.5 or LTX 2.3 — tracks skeleton and transfers the reference-image subject): "A glossy cartoon robot from the reference image performs the source video's motion, with brushed metal texture, glowing cyan joints, and energetic stage lighting." This mode requires a reference image as well as the source video.
26
- - depth (LTX-2.3 — depth-map restyle): "A misty alpine valley at golden hour, expansive scale, volumetric haze, cool blue shadows, warm rim light, cinematic depth, lingering continuous shot."
27
- - detailer (LTX-2.3 — enhance quality): DESCRIBE THE SOURCE, do not request changes. Append quality qualifiers only. E.g. "The same scene, ultra-sharp and clean, crisp high-resolution detail, preserving all original content, composition, and color." Avoid words like "enhanced textures", "restyled", or any new subjects/objects — they cause drift.
27
+ - depth (LTX 2.5 default; LTX 2.3 rollback — depth-map restyle): "A misty alpine valley at golden hour, expansive scale, volumetric haze, cool blue shadows, warm rim light, cinematic depth, lingering continuous shot."
28
+ - detailer (LTX 2.5 default; LTX 2.3 rollback — enhance quality): DESCRIBE THE SOURCE, do not request changes. Append quality qualifiers only. E.g. "The same scene, ultra-sharp and clean, crisp high-resolution detail, preserving all original content, composition, and color." Avoid words like "enhanced textures", "restyled", or any new subjects/objects — they cause drift.
28
29
  - seedance-v2v (BytePlus Dreamina Seedance 2.0 V2V): "Restyle the source clip in a watercolor look with soft ink edges, while preserving its motion and composition." Use natural prose; Seedance reads the reference video holistically rather than via control-net constraints, so describe target style/mood/dialogue rather than control strength.
29
- - outpaint (LTX-2.3 — canvas extension): describe what fills the NEWLY REVEALED area around the original frame, consistent with the source scene. E.g. "The same street scene continues seamlessly into the newly revealed space — more wet asphalt, parked cars, and glowing shopfronts, matching the original lighting and perspective." Set outpaintPosition (and optionally outpaintAspectRatio); no mask needed.
30
- - inpaint (LTX-2.3 — masked region regeneration): describe ONLY what the inpainted region should become; the rest of the frame is preserved. E.g. "A vintage red convertible parked at the curb, matching the scene's lighting and shadows." If the user supplied a mask, set maskImageIndex. If no mask was supplied, omit maskImageIndex so execution derives a mask from the source video and prompt.
30
+ - outpaint (LTX 2.5 default; LTX 2.3 rollback — canvas extension): describe what fills the NEWLY REVEALED area around the original frame, consistent with the source scene. E.g. "The same street scene continues seamlessly into the newly revealed space — more wet asphalt, parked cars, and glowing shopfronts, matching the original lighting and perspective." Set outpaintPosition (and optionally outpaintAspectRatio); no mask needed.
31
+ - inpaint (LTX 2.5 default; LTX 2.3 rollback — masked region regeneration): describe ONLY what the inpainted region should become; the rest of the frame is preserved. E.g. "A vintage red convertible parked at the curb, matching the scene's lighting and shadows." If the user supplied a mask, set maskImageIndex. If no mask was supplied, omit maskImageIndex so execution derives a mask from the source video and prompt.
31
32
 
32
33
  Present tense. Positive phrasing. Concrete visual details.
33
34
 
@@ -66,16 +67,17 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
66
67
  '• "outpaint" — distilled LTX 2.5 (default) or LTX 2.3 canvas extension. Set outpaintPosition and optionally outpaintAspectRatio; Pro/dev is not supported for this mode.\n' +
67
68
  '• "inpaint" — distilled LTX 2.5 (default) or LTX 2.3 masked region regeneration. Set maskImageIndex when supplied; Pro/dev is not supported for this mode.\n' +
68
69
  `• "seedance-v2v" — BytePlus Dreamina Seedance 2.0 video-to-video. Use only when the user explicitly asks for Seedance on the uploaded source video, such as a Seedance upscale, enhance, remaster, restyle, or transform. High-fidelity quality, native audio, time-coded scene control. ${toolPromptMarkers_js_1.SEEDANCE_TOOL_V2V_REFERENCE_GUIDANCE} Distinct from canny/depth/pose which use control-net constraints — Seedance treats the reference video holistically.\n` +
69
- 'Canny vs depth: canny preserves silhouettes and fine outlines — pick it for subject-led scenes and graphic restyles. Depth preserves 3D structure — pick it for scenes where the camera moves or spatial layout matters more than edge fidelity. Default: "animate-move".',
70
+ 'Canny vs depth: canny preserves silhouettes and fine outlines — pick it for subject-led scenes and graphic restyles. Depth preserves 3D structure — pick it for scenes where the camera moves or spatial layout matters more than edge fidelity. Default: "animate-move".\n\nUse seedance-v2v with videoModel="wan3.0-video" for Wan 3 source-video editing or continuation; describe Video 1 as the source in the prompt.',
70
71
  },
71
72
  negativePrompt: {
72
73
  type: "string",
73
- description: "Advanced non-Seedance only. Use this field only when the user explicitly asks to set a separate negative prompt. For ordinary avoid/no/don't constraints on LTX 2.3 or WAN 2.2, translate them into affirmative production constraints inside prompt instead; do not move them here. Do not set when controlMode is seedance-v2v or videoModel is seedance2/seedance2-mini/seedance2-5.",
74
+ description: "Advanced non-Seedance only. Use this field only when the user explicitly asks to set a separate negative prompt. For ordinary avoid/no/don't constraints on LTX 2.3 or WAN 2.2, translate them into affirmative production constraints inside prompt instead; do not move them here. Do not set when controlMode is seedance-v2v or videoModel is seedance2/seedance2-mini/seedance2-5.\n\nWan 3 has no negativePrompt request field; do not set this for wan3.0-video.",
74
75
  },
75
76
  videoModel: {
76
77
  type: "string",
77
- enum: ["ltx25-v2v", "ltx23-v2v", "wan22-animate", "seedance2", "seedance2-mini", "seedance2-5"],
78
- description: 'Model selector for this video-to-video request. Usually omit: non-Seedance controls default to "ltx25-v2v"; use "ltx23-v2v" only for rollback. LTX 2.5 Fast, HQ, and Pro currently use the release-validated official Distilled workflow for canny, pose, depth, detailer, inpaint, and outpaint. Dev is not publicly routed until upstream publishes and Sogni validates an official ComfyUI Dev recipe. For controlMode="seedance-v2v", Seedance quality is selected only by model: use "seedance2-mini" for faster/lower-cost drafts and use "seedance2" for full-quality Seedance or 1080p/4K. "seedance2-5" supports 480p/720p, 4-30s at 24 fps, native audio, and first/last-frame conditioning; keep "seedance2" for 1080p/4K.',
78
+ enum: ["ltx25-v2v", "ltx23-v2v", "wan22-animate", "seedance2", "seedance2-mini", "seedance2-5", "wan3.0-video"],
79
+ description: 'Model selector for this video-to-video request. Usually omit: non-Seedance controls default to "ltx25-v2v"; use "ltx23-v2v" only for rollback. LTX 2.5 Fast, HQ, and Pro currently use the release-validated official Distilled workflow for canny, pose, depth, detailer, inpaint, and outpaint. Dev is not publicly routed until upstream publishes and Sogni validates an official ComfyUI Dev recipe. For controlMode="seedance-v2v", Seedance quality is selected only by model: use "seedance2-mini" for faster/lower-cost drafts and use "seedance2" for full-quality Seedance or 1080p/4K. "seedance2-5" supports 480p/720p, 4-30s at 24 fps, native audio, and first/last-frame conditioning; keep "seedance2" for 1080p/4K. ' +
80
+ WAN3_VIDEO_MODEL_GUIDANCE,
79
81
  },
80
82
  generateAudio: {
81
83
  type: "boolean",
@@ -83,7 +85,7 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
83
85
  },
84
86
  targetResolution: {
85
87
  type: "number",
86
- description: 'Seedance V2V only. Short-side output resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", or "1080p" without exact dimensions. Seedance V2V full supports 4K; Seedance V2V Mini and Seedance 2.5 support 480p and 720p only, so never set 1080p or 4K for "seedance2-5". Preserve the source video shape instead of forcing landscape pixels.',
88
+ description: 'Seedance or Wan 3 V2V only. Short-side output resolution target in pixels. Use when the user asks for a bare named resolution such as "480p", "720p", "1080p", "2160p", or "4K" without exact dimensions. Seedance V2V full supports 4K; Seedance V2V Mini, Fast, and Seedance 2.5 support 480p and 720p only, so never set 1080p or 4K for "seedance2-5". Wan 3 supports exactly 480p, 720p, and 1080p. Preserve the source video shape instead of forcing landscape pixels.',
87
89
  },
88
90
  sourceImageIndex: {
89
91
  type: "number",
@@ -105,10 +107,36 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
105
107
  },
106
108
  duration: {
107
109
  type: "number",
108
- description: 'Output video duration in seconds. Range: 2-20 for WAN/LTX modes, 4-15 for controlMode="seedance-v2v" on seedance2/seedance2-mini, and 4-30 for controlMode="seedance-v2v" on seedance2-5. If omitted, the tool matches the uploaded source video duration when available (capped to the selected model range); otherwise it falls back to 10s for WAN Animate Move/Replace and 5s for LTX-2.3/Seedance modes. For long stitched/bulk WAN Animate Move/Replace work with no explicit per-clip length, prefer about 10s clips rather than 5s chunks. Only pass this when the user explicitly requests a different length.',
110
+ description: 'Output video duration in seconds. Per-model range: WAN 2.2/LTX modes = 2-20s; Wan 3 = 2-30s subject to input-video plus output duration staying at or below 30s; Seedance 2.0 and Mini = 4-15s; Seedance 2.5 = 4-30s. If omitted, the tool matches the uploaded source video duration when available (capped to the selected model range); otherwise it falls back to 10s for WAN Animate Move/Replace and 5s for LTX/Seedance/Wan 3 modes. For long stitched/bulk WAN Animate Move/Replace work with no explicit per-clip length, prefer about 10s clips rather than 5s chunks. Only pass this when the user explicitly requests a different length.',
109
111
  minimum: 2,
110
112
  maximum: 30,
111
113
  },
114
+ smartDuration: {
115
+ type: "boolean",
116
+ description: "Wan 3 only. Let Wan 3 choose 2-30 output seconds. Do not also set duration; input plus output must stay within the provider's 30-second limit. Sogni reserves 30 seconds and settles down to actual duration.",
117
+ },
118
+ wan3TaskType: {
119
+ type: "string",
120
+ enum: ["edit", "extend"],
121
+ description: 'Wan 3 only. Use "edit" to transform the source or "extend" to continue it. Extension automatically uses ratio="adaptive" and the prompt should explicitly describe continuation intent.',
122
+ },
123
+ ratio: {
124
+ type: "string",
125
+ enum: ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"],
126
+ description: 'Wan 3 only. Extension requires "adaptive"; edit defaults to adaptive.',
127
+ },
128
+ referenceFileUrl: {
129
+ type: "string",
130
+ description: "Wan 3 only. One public HTTPS document URL for additional edit/extension context (DOCX/DOC/XLSX/XLS/PPTX/PPT/PDF/TXT/KEY/PAGES/NUMBERS/Markdown, up to 100 MB; PDF/DOCX/DOC/PPTX/PPT/KEY/PAGES up to 50 pages). Mutually exclusive with referenceLinkUrl.",
131
+ },
132
+ referenceLinkUrl: {
133
+ type: "string",
134
+ description: "Wan 3 only. One public HTTPS webpage URL for additional edit/extension context. Mutually exclusive with referenceFileUrl.",
135
+ },
136
+ watermark: {
137
+ type: "boolean",
138
+ description: "Wan 3 only. Add Alibaba's visible watermark. Defaults to false.",
139
+ },
112
140
  numberOfVariations: {
113
141
  type: "number",
114
142
  description: "Number of video variations to generate (1-16). Default: 1.",
@@ -120,4 +148,6 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax to vary
120
148
  },
121
149
  },
122
150
  };
151
+ exports.definition.function.description +=
152
+ ' Wan 3 source-video editing and continuation uses videoModel="wan3.0-video" with controlMode="seedance-v2v".';
123
153
  //# sourceMappingURL=definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":";;;AAMA,kFAIiD;AAEpC,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,8bAA8b;QAChc,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uDAAgC;;;;;;;;;;;;;;;;;;;uRAmBqP;iBAC9Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yDAAkC;iBAChD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qYAAqY;iBACxY;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,cAAc;wBACd,iBAAiB;wBACjB,OAAO;wBACP,MAAM;wBACN,OAAO;wBACP,UAAU;wBACV,UAAU;wBACV,SAAS;wBACT,cAAc;qBACf;oBACD,WAAW,EACT,2EAA2E;wBAC3E,kMAAkM;wBAClM,sNAAsN;wBACtN,mJAAmJ;wBACnJ,kPAAkP;wBAClP,iJAAiJ;wBACjJ,wJAAwJ;wBACxJ,4KAA4K;wBAC5K,8JAA8J;wBAC9J,4RAA4R,2DAAoC,yHAAyH;wBACzb,2QAA2Q;iBAC9Q;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yXAAyX;iBAC5X;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC;oBAC/F,WAAW,EACT,usBAAusB;iBAC1sB;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,sKAAsK;iBACzK;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kYAAkY;iBACrY;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sUAAsU;iBACzU;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;oBAClD,WAAW,EACT,2cAA2c;iBAC9c;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;oBACnD,WAAW,EACT,4VAA4V;iBAC/V;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4SAA4S;iBAC/S;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,ylBAAylB;oBAC3lB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4DAA4D;oBAC9D,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/video-to-video/definition.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export { SEEDANCE_REFERENCE_LIMITS, SEEDANCE_REFERENCE_LIMITS_BY_MODEL, getSeeda
10
10
  export type { SeedanceReferenceLimits, SeedanceReferenceLimitKind, SeedanceReferenceCounts, } from './shared/seedanceReferences.js';
11
11
  export { HAPPYHORSE_REFERENCE_LIMITS, HappyHorseReferenceLimitError, getHappyHorseReferenceLimits, validateHappyHorseReferenceCounts, } from './shared/happyhorseReferences.js';
12
12
  export type { HappyHorseReferenceLimits, HappyHorseReferenceLimitKind, HappyHorseReferenceCounts, } from './shared/happyhorseReferences.js';
13
+ export { WAN3_LOOSE_REFERENCE_LIMITS, WAN3_REFERENCE_DURATION_LIMITS, Wan3ReferenceDurationError, Wan3ReferenceLimitError, validateWan3ReferenceCounts, validateWan3ReferenceDurations, } from './shared/wan3References.js';
14
+ export type { Wan3ReferenceLimits, Wan3ReferenceLimitKind, Wan3ReferenceCounts, } from './shared/wan3References.js';
13
15
  export { HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION, HAPPYHORSE_TOOL_REFERENCE_GUIDANCE, } from '../contracts/toolPromptMarkers.js';
14
16
  export * from './shared/llmHelpers.js';
15
17
  export * from './shared/promptRefinementCache.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EACL,2CAA2C,EAC3C,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mDAAmD,EACnD,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0CAA0C,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,gDAAgD,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,2CAA2C,EAC3C,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mDAAmD,EACnD,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0CAA0C,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,gDAAgD,EAAE,MAAM,yCAAyC,CAAC"}
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.toolOk = exports.toolErr = exports.mapLegacyToolErrorCategory = exports.isToolResultOk = exports.isToolResultErr = exports.resolveDancePresetForRequest = exports.DANCE_PRESETS = exports.SUBTITLE_VERTICAL_POSITIONS = exports.STITCH_TRANSITION_TYPES = exports.OVERLAY_POSITIONS = exports.videoToVideoDefinition = exports.stitchVideoDefinition = exports.soundToVideoDefinition = exports.upscaleImageDefinition = exports.restorePhotoDefinition = exports.replaceVideoSegmentDefinition = exports.refineResultDefinition = exports.overlayVideoDefinition = exports.orbitVideoDefinition = exports.generationToolDefinitions = exports.generateVideoDefinition = exports.generateMusicDefinition = exports.generateImageDefinition = exports.extendVideoDefinition = exports.editImageDefinition = exports.danceMontageDefinition = exports.changeAngleDefinition = exports.applyStyleDefinition = exports.animatePhotoDefinition = exports.addSubtitlesDefinition = exports.HAPPYHORSE_TOOL_REFERENCE_GUIDANCE = exports.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION = exports.validateHappyHorseReferenceCounts = exports.getHappyHorseReferenceLimits = exports.HappyHorseReferenceLimitError = exports.HAPPYHORSE_REFERENCE_LIMITS = exports.validateSeedanceReferenceCounts = exports.SeedanceReferenceLimitError = exports.getSeedanceReferenceLimits = exports.SEEDANCE_REFERENCE_LIMITS_BY_MODEL = exports.SEEDANCE_REFERENCE_LIMITS = exports.isQualityTierTool = exports.getModelOptions = exports.getModelArgKey = exports.getAlternativeModels = exports.MODELS_BY_TOOL = exports.GENERATE_IMAGE_MODELS = exports.parseResultForError = exports.classifyError = exports.sanitizeBatchPrompt = void 0;
18
- exports.maybeAlignNumberOfVariationsToDynamicBranchCount = exports.textExplicitlyRequestsMultipleImageOutputs = exports.isStoryboardKeyframeBatchPrompt = exports.promptHasLinkedVariantBatchLanguage = exports.promptHasStoryboardBatchLanguage = exports.validateSingleDynamicPromptBranch = exports.validateSceneDynamicPromptBatch = exports.buildDynamicPromptSlotPrompts = exports.isolateDynamicPromptSlot = exports.extractDynamicPromptBranches = exports.expandSingleSourceFanOutForPerClipPrompts = exports.collapseSingleSourceFanOutToDynamicPromptVariations = void 0;
17
+ exports.DANCE_PRESETS = exports.SUBTITLE_VERTICAL_POSITIONS = exports.STITCH_TRANSITION_TYPES = exports.OVERLAY_POSITIONS = exports.videoToVideoDefinition = exports.stitchVideoDefinition = exports.soundToVideoDefinition = exports.upscaleImageDefinition = exports.restorePhotoDefinition = exports.replaceVideoSegmentDefinition = exports.refineResultDefinition = exports.overlayVideoDefinition = exports.orbitVideoDefinition = exports.generationToolDefinitions = exports.generateVideoDefinition = exports.generateMusicDefinition = exports.generateImageDefinition = exports.extendVideoDefinition = exports.editImageDefinition = exports.danceMontageDefinition = exports.changeAngleDefinition = exports.applyStyleDefinition = exports.animatePhotoDefinition = exports.addSubtitlesDefinition = exports.HAPPYHORSE_TOOL_REFERENCE_GUIDANCE = exports.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION = exports.validateWan3ReferenceDurations = exports.validateWan3ReferenceCounts = exports.Wan3ReferenceLimitError = exports.Wan3ReferenceDurationError = exports.WAN3_REFERENCE_DURATION_LIMITS = exports.WAN3_LOOSE_REFERENCE_LIMITS = exports.validateHappyHorseReferenceCounts = exports.getHappyHorseReferenceLimits = exports.HappyHorseReferenceLimitError = exports.HAPPYHORSE_REFERENCE_LIMITS = exports.validateSeedanceReferenceCounts = exports.SeedanceReferenceLimitError = exports.getSeedanceReferenceLimits = exports.SEEDANCE_REFERENCE_LIMITS_BY_MODEL = exports.SEEDANCE_REFERENCE_LIMITS = exports.isQualityTierTool = exports.getModelOptions = exports.getModelArgKey = exports.getAlternativeModels = exports.MODELS_BY_TOOL = exports.GENERATE_IMAGE_MODELS = exports.parseResultForError = exports.classifyError = exports.sanitizeBatchPrompt = void 0;
18
+ exports.maybeAlignNumberOfVariationsToDynamicBranchCount = exports.textExplicitlyRequestsMultipleImageOutputs = exports.isStoryboardKeyframeBatchPrompt = exports.promptHasLinkedVariantBatchLanguage = exports.promptHasStoryboardBatchLanguage = exports.validateSingleDynamicPromptBranch = exports.validateSceneDynamicPromptBatch = exports.buildDynamicPromptSlotPrompts = exports.isolateDynamicPromptSlot = exports.extractDynamicPromptBranches = exports.expandSingleSourceFanOutForPerClipPrompts = exports.collapseSingleSourceFanOutToDynamicPromptVariations = exports.toolOk = exports.toolErr = exports.mapLegacyToolErrorCategory = exports.isToolResultOk = exports.isToolResultErr = exports.resolveDancePresetForRequest = void 0;
19
19
  var promptSanitizer_js_1 = require("./shared/promptSanitizer.js");
20
20
  Object.defineProperty(exports, "sanitizeBatchPrompt", { enumerable: true, get: function () { return promptSanitizer_js_1.sanitizeBatchPrompt; } });
21
21
  var errorClassification_js_1 = require("./shared/errorClassification.js");
@@ -42,6 +42,13 @@ Object.defineProperty(exports, "HAPPYHORSE_REFERENCE_LIMITS", { enumerable: true
42
42
  Object.defineProperty(exports, "HappyHorseReferenceLimitError", { enumerable: true, get: function () { return happyhorseReferences_js_1.HappyHorseReferenceLimitError; } });
43
43
  Object.defineProperty(exports, "getHappyHorseReferenceLimits", { enumerable: true, get: function () { return happyhorseReferences_js_1.getHappyHorseReferenceLimits; } });
44
44
  Object.defineProperty(exports, "validateHappyHorseReferenceCounts", { enumerable: true, get: function () { return happyhorseReferences_js_1.validateHappyHorseReferenceCounts; } });
45
+ var wan3References_js_1 = require("./shared/wan3References.js");
46
+ Object.defineProperty(exports, "WAN3_LOOSE_REFERENCE_LIMITS", { enumerable: true, get: function () { return wan3References_js_1.WAN3_LOOSE_REFERENCE_LIMITS; } });
47
+ Object.defineProperty(exports, "WAN3_REFERENCE_DURATION_LIMITS", { enumerable: true, get: function () { return wan3References_js_1.WAN3_REFERENCE_DURATION_LIMITS; } });
48
+ Object.defineProperty(exports, "Wan3ReferenceDurationError", { enumerable: true, get: function () { return wan3References_js_1.Wan3ReferenceDurationError; } });
49
+ Object.defineProperty(exports, "Wan3ReferenceLimitError", { enumerable: true, get: function () { return wan3References_js_1.Wan3ReferenceLimitError; } });
50
+ Object.defineProperty(exports, "validateWan3ReferenceCounts", { enumerable: true, get: function () { return wan3References_js_1.validateWan3ReferenceCounts; } });
51
+ Object.defineProperty(exports, "validateWan3ReferenceDurations", { enumerable: true, get: function () { return wan3References_js_1.validateWan3ReferenceDurations; } });
45
52
  var toolPromptMarkers_js_1 = require("../contracts/toolPromptMarkers.js");
46
53
  Object.defineProperty(exports, "HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION", { enumerable: true, get: function () { return toolPromptMarkers_js_1.HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION; } });
47
54
  Object.defineProperty(exports, "HAPPYHORSE_TOOL_REFERENCE_GUIDANCE", { enumerable: true, get: function () { return toolPromptMarkers_js_1.HAPPYHORSE_TOOL_REFERENCE_GUIDANCE; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kEAAkE;AAAzD,yHAAA,mBAAmB,OAAA;AAC5B,0EAGyC;AAFvC,uHAAA,aAAa,OAAA;AACb,6HAAA,mBAAmB,OAAA;AAMrB,8DAOmC;AANjC,yHAAA,qBAAqB,OAAA;AACrB,kHAAA,cAAc,OAAA;AACd,wHAAA,oBAAoB,OAAA;AACpB,kHAAA,cAAc,OAAA;AACd,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGnB,2DAAyC;AACzC,mEAAiD;AACjD,qEAAmD;AACnD,wEAMwC;AALtC,kIAAA,yBAAyB,OAAA;AACzB,2IAAA,kCAAkC,OAAA;AAClC,mIAAA,0BAA0B,OAAA;AAC1B,oIAAA,2BAA2B,OAAA;AAC3B,wIAAA,+BAA+B,OAAA;AAOjC,4EAK0C;AAJxC,sIAAA,2BAA2B,OAAA;AAC3B,wIAAA,6BAA6B,OAAA;AAC7B,uIAAA,4BAA4B,OAAA;AAC5B,4IAAA,iCAAiC,OAAA;AAUnC,0EAG2C;AAFzC,mJAAA,2CAA2C,OAAA;AAC3C,0IAAA,kCAAkC,OAAA;AAEpC,yDAAuC;AACvC,oEAAkD;AAClD,4DAA0C;AAC1C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mDA0BgC;AAzB9B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,yHAAA,6BAA6B,OAAA;AAC7B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,mHAAA,uBAAuB,OAAA;AACvB,uHAAA,2BAA2B,OAAA;AAC3B,yGAAA,aAAa,OAAA;AACb,wHAAA,4BAA4B,OAAA;AAG9B,yCAMqB;AALnB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA;AACP,mGAAA,MAAM,OAAA;AAWR,uDAG4B;AAF1B,uJAAA,mDAAmD,OAAA;AACnD,6IAAA,yCAAyC,OAAA;AAE3C,8EAW2C;AARzC,wIAAA,4BAA4B,OAAA;AAC5B,oIAAA,wBAAwB,OAAA;AACxB,yIAAA,6BAA6B,OAAA;AAC7B,2IAAA,+BAA+B,OAAA;AAC/B,6IAAA,iCAAiC,OAAA;AACjC,4IAAA,gCAAgC,OAAA;AAChC,+IAAA,mCAAmC,OAAA;AACnC,2IAAA,+BAA+B,OAAA;AAEjC,oEAA0F;AAAjF,iJAAA,0CAA0C,OAAA;AACnD,0FAA2G;AAAlG,kKAAA,gDAAgD,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kEAAkE;AAAzD,yHAAA,mBAAmB,OAAA;AAC5B,0EAGyC;AAFvC,uHAAA,aAAa,OAAA;AACb,6HAAA,mBAAmB,OAAA;AAMrB,8DAOmC;AANjC,yHAAA,qBAAqB,OAAA;AACrB,kHAAA,cAAc,OAAA;AACd,wHAAA,oBAAoB,OAAA;AACpB,kHAAA,cAAc,OAAA;AACd,mHAAA,eAAe,OAAA;AACf,qHAAA,iBAAiB,OAAA;AAGnB,2DAAyC;AACzC,mEAAiD;AACjD,qEAAmD;AACnD,wEAMwC;AALtC,kIAAA,yBAAyB,OAAA;AACzB,2IAAA,kCAAkC,OAAA;AAClC,mIAAA,0BAA0B,OAAA;AAC1B,oIAAA,2BAA2B,OAAA;AAC3B,wIAAA,+BAA+B,OAAA;AAOjC,4EAK0C;AAJxC,sIAAA,2BAA2B,OAAA;AAC3B,wIAAA,6BAA6B,OAAA;AAC7B,uIAAA,4BAA4B,OAAA;AAC5B,4IAAA,iCAAiC,OAAA;AAOnC,gEAOoC;AANlC,gIAAA,2BAA2B,OAAA;AAC3B,mIAAA,8BAA8B,OAAA;AAC9B,+HAAA,0BAA0B,OAAA;AAC1B,4HAAA,uBAAuB,OAAA;AACvB,gIAAA,2BAA2B,OAAA;AAC3B,mIAAA,8BAA8B,OAAA;AAUhC,0EAG2C;AAFzC,mJAAA,2CAA2C,OAAA;AAC3C,0IAAA,kCAAkC,OAAA;AAEpC,yDAAuC;AACvC,oEAAkD;AAClD,4DAA0C;AAC1C,iEAA+C;AAC/C,qEAAmD;AACnD,+DAA6C;AAC7C,mDA0BgC;AAzB9B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,qHAAA,yBAAyB,OAAA;AACzB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,yHAAA,6BAA6B,OAAA;AAC7B,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,mHAAA,uBAAuB,OAAA;AACvB,uHAAA,2BAA2B,OAAA;AAC3B,yGAAA,aAAa,OAAA;AACb,wHAAA,4BAA4B,OAAA;AAG9B,yCAMqB;AALnB,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA;AACP,mGAAA,MAAM,OAAA;AAWR,uDAG4B;AAF1B,uJAAA,mDAAmD,OAAA;AACnD,6IAAA,yCAAyC,OAAA;AAE3C,8EAW2C;AARzC,wIAAA,4BAA4B,OAAA;AAC5B,oIAAA,wBAAwB,OAAA;AACxB,yIAAA,6BAA6B,OAAA;AAC7B,2IAAA,+BAA+B,OAAA;AAC/B,6IAAA,iCAAiC,OAAA;AACjC,4IAAA,gCAAgC,OAAA;AAChC,+IAAA,mCAAmC,OAAA;AACnC,2IAAA,+BAA+B,OAAA;AAEjC,oEAA0F;AAAjF,iJAAA,0CAA0C,OAAA;AACnD,0FAA2G;AAAlG,kKAAA,gDAAgD,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"modelRegistry.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/modelRegistry.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BS,CAAC;AAM5C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CA+DxD,CAAC;AAkBF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvD;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAE/D;AAGD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,EAAE,CAIf"}
1
+ {"version":3,"file":"modelRegistry.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/modelRegistry.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BS,CAAC;AAM5C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAmExD,CAAC;AAkBF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvD;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAE/D;AAGD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,EAAE,CAIf"}
@@ -72,6 +72,7 @@ exports.MODELS_BY_TOOL = {
72
72
  { key: 'happyhorse-1.1-t2v', displayName: 'HappyHorse 1.1 (Text to Video)' },
73
73
  { key: 'happyhorse-1.1-i2v', displayName: 'HappyHorse 1.1 (Image to Video)' },
74
74
  { key: 'happyhorse-1.1-r2v', displayName: 'HappyHorse 1.1 (Reference to Video)' },
75
+ { key: 'wan3.0-video', displayName: 'Wan 3' },
75
76
  ],
76
77
  animate_photo: [
77
78
  { key: 'ltx25', displayName: 'LTX 2.5 22B' },
@@ -81,6 +82,7 @@ exports.MODELS_BY_TOOL = {
81
82
  { key: 'minimax-h3-i2v-turbo', displayName: 'MiniMax H3 Turbo (Image to Video)' },
82
83
  { key: 'minimax-h3-flf2v', displayName: 'MiniMax H3 (First + Last Frame)' },
83
84
  { key: 'minimax-h3-flf2v-turbo', displayName: 'MiniMax H3 Turbo (First + Last Frame)' },
85
+ { key: 'wan3.0-video', displayName: 'Wan 3' },
84
86
  ],
85
87
  sound_to_video: [
86
88
  { key: 'wan-s2v', displayName: 'WAN 2.2 S2V' },
@@ -91,6 +93,7 @@ exports.MODELS_BY_TOOL = {
91
93
  { key: 'ltx25-a2v', displayName: 'LTX 2.5 Audio Only' },
92
94
  { key: 'ltx23-ia2v', displayName: 'LTX 2.3 Image+Audio' },
93
95
  { key: 'ltx23-a2v', displayName: 'LTX 2.3 Audio Only' },
96
+ { key: 'wan3.0-video', displayName: 'Wan 3 Image/Audio' },
94
97
  ],
95
98
  video_to_video: [
96
99
  { key: 'ltx25-v2v', displayName: 'LTX 2.5 V2V Control' },
@@ -99,6 +102,7 @@ exports.MODELS_BY_TOOL = {
99
102
  { key: 'seedance2', displayName: 'Seedance 2.0' },
100
103
  { key: 'seedance2-mini', displayName: 'Seedance 2.0 Mini' },
101
104
  { key: 'seedance2-5', displayName: 'Seedance 2.5' },
105
+ { key: 'wan3.0-video', displayName: 'Wan 3 Edit/Extend' },
102
106
  ],
103
107
  generate_music: [
104
108
  { key: 'turbo', displayName: 'ACE-Step 1.5 Turbo' },
@@ -1 +1 @@
1
- {"version":3,"file":"modelRegistry.js","sourceRoot":"","sources":["../../../src/tools/shared/modelRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelRegistry.js","sourceRoot":"","sources":["../../../src/tools/shared/modelRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export interface Wan3ReferenceLimits {
2
+ readonly images: number;
3
+ readonly videos: number;
4
+ readonly audios: number;
5
+ readonly files: number;
6
+ readonly links: number;
7
+ }
8
+ export declare const WAN3_LOOSE_REFERENCE_LIMITS: Wan3ReferenceLimits;
9
+ export declare const WAN3_REFERENCE_DURATION_LIMITS: Readonly<{
10
+ minimum: 1;
11
+ maximum: 15;
12
+ totalMaximum: 15;
13
+ }>;
14
+ export type Wan3ReferenceLimitKind = keyof Wan3ReferenceLimits;
15
+ export declare class Wan3ReferenceLimitError extends Error {
16
+ readonly code: "wan3_reference_limit_exceeded";
17
+ readonly limitKind: Wan3ReferenceLimitKind;
18
+ readonly requestedCount: number;
19
+ readonly maxCount: number;
20
+ constructor(limitKind: Wan3ReferenceLimitKind, requestedCount: number, maxCount: number);
21
+ }
22
+ export declare class Wan3ReferenceDurationError extends Error {
23
+ readonly code: "wan3_reference_duration_invalid";
24
+ readonly modality: 'video' | 'audio';
25
+ constructor(modality: 'video' | 'audio', message: string);
26
+ }
27
+ export interface Wan3ReferenceCounts {
28
+ readonly images: number;
29
+ readonly videos: number;
30
+ readonly audios: number;
31
+ readonly files?: number;
32
+ readonly links?: number;
33
+ }
34
+ export declare function validateWan3ReferenceCounts(counts: Wan3ReferenceCounts): void;
35
+ export declare function validateWan3ReferenceDurations(modality: 'video' | 'audio', durations: ReadonlyArray<number | undefined>): void;
36
+ //# sourceMappingURL=wan3References.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wan3References.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/wan3References.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,2BAA2B,EAAE,mBAMxC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;EAIzC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAG,+BAA+B,CAAU;IACzD,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAGxB,SAAS,EAAE,sBAAsB,EACjC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM;CAYnB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAG,iCAAiC,CAAU;IAC3D,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;gBAEzB,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM;CAKzD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CA0B7E;AAOD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,OAAO,GAAG,OAAO,EAC3B,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,GAC3C,IAAI,CAsBN"}