-
Notifications
You must be signed in to change notification settings - Fork 23
workflows comfy #1442
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
giurgiur99
wants to merge
30
commits into
next-4
Choose a base branch
from
feat/ltx-video-ugc-template
base: next-4
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
workflows comfy #1442
Changes from all commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
b02905a
workflows comfy
giurgiur99 08f1e0d
fix template
giurgiur99 248fe1d
fix download
giurgiur99 dc783b0
split in two bundles
giurgiur99 233942c
workflow id
giurgiur99 613b017
multiscene test
giurgiur99 11fb2ea
multishoot v2
giurgiur99 6231b06
fix v2
giurgiur99 c0f74d5
v3 try
giurgiur99 3866a6e
voice concat
giurgiur99 989a93a
update ugc product template to include new fields necessary on dashboard
dnsi0 6e87150
concat voices too
giurgiur99 434f221
install missing services
giurgiur99 3fe722e
cut to new scene
giurgiur99 26f8dde
remove sizeGb
dnsi0 803503a
cleanup
giurgiur99 01a6c2d
Merge branch 'feat/ltx-video-ugc-template' of https://github.com/ocea…
giurgiur99 373bff2
readd sizegb and schema
giurgiur99 07ec8c7
minimax flow
giurgiur99 db1dc33
simplify
giurgiur99 4a18194
minimax h3 v2
giurgiur99 be813f1
v3 h3
giurgiur99 f8f3e0b
h3 v4
giurgiur99 c791959
image defaults
giurgiur99 c34cb01
speed improvement
giurgiur99 5486dc9
fixes
giurgiur99 fcd927f
fix box sizes
giurgiur99 2c6ac40
fix corrupt model download
giurgiur99 e83c4bb
new carachters
giurgiur99 8ff1fe6
fix tail sound
giurgiur99 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,107 @@ | ||
| { | ||
| "id": "ltx-video-ugc-multishot", | ||
| "name": "ComfyUI — UGC multishot reel (LTX-2.3)", | ||
| "description": "ComfyUI preloaded with LTX-2.3 for a vertical UGC reel built one shot at a time, with the same character in every shot. It runs the same two-stage generator as the product-video template (22B dev fp8, base pass then a spatial-upscaler refine pass), so shot quality matches. Usage: optionally upload a character photo as the first frame — with no photo you turn on 'No character image' and the style prompt builds the character instead. Then fill two text boxes: 'Style — every shot' holds everything that must stay identical (who the character is, wardrobe, room, lighting, palette, camera look) and you never touch it again; 'Scene — this shot' holds only what changes (action, camera move, dialogue, ambient sound). Click Run for a clip, edit the scene box, Run again. Every run also saves that clip's last frame beside it as lastframe_….png, and a Shot start dial decides how it is used: at 1.0 it is frame 0 and the shot continues seamlessly, while around 0.35 it acts as a character reference only, so the model composes a new frame and you get a hard cut to a new scene with the same character. Chaining shots this way — shot 2 then starts exactly where shot 1 ended and identity carries in pixels rather than in prose, the trick that holds a multi-shot reel together. Clips are 9:16 vertical (720×1280) at 5 seconds each (126 frames at 25 fps) with audio, saved to the bucket root; ComfyUI's save counter never overwrites, so re-takes accumulate and you pick the good ones later. Once every shot is good, switch to the Assemble reel workflow to concatenate up to 8 of them into one clip inside ComfyUI — no external editor needed. The assemble workflow keeps each clip's own audio and runs it through a voice-conversion node: LTX re-rolls the speaker on every clip, so the stitched track would otherwise change voice at each cut. It takes the reference voice from Shot 1's own audio — nothing to upload and nothing to type, since this is speech-to-speech rather than transcription — and converts every line to that one speaker, with words, timing and room tone untouched — so the picture stays in sync and the lips still match. The node pack is not in the image; the bootstrap clones it and installs its dependencies on launch, but only when the graph actually uses it, so the first launch of this template is slower and the product template is unaffected. Select a persistent-storage bucket: it holds ComfyUI's whole base directory, so the 38 GiB of weights download once and are reused, and the numbered shot clips land in the bucket root where the storage API's listFiles can see them. Needs a CUDA GPU with 48 GB+ VRAM.", | ||
| "kind": "bundle", | ||
| "service": "comfyui", | ||
| "outcome": "Build a multi-shot 9:16 UGC reel with one character and one voice throughout.", | ||
| "category": "video", | ||
| "includes": [ | ||
| { | ||
| "name": "LTX-2.3 22B dev (fp8)", | ||
| "kind": "model", | ||
| "sizeGb": 29.2, | ||
| "repoId": "Lightricks/LTX-2.3-fp8" | ||
| }, | ||
| { | ||
| "name": "Gemma-3-12B-it text encoder (fp4 mixed)", | ||
| "kind": "model", | ||
| "sizeGb": 9.5, | ||
| "repoId": "Comfy-Org/ltx-2" | ||
| }, | ||
| { | ||
| "name": "LTX-2.3 22B distilled LoRA (rank 111)", | ||
| "kind": "model", | ||
| "sizeGb": 2.7, | ||
| "repoId": "Comfy-Org/ltx-2.3" | ||
| }, | ||
| { | ||
| "name": "LTX-2.3 spatial upscaler x2", | ||
| "kind": "model", | ||
| "sizeGb": 1.0, | ||
| "repoId": "Lightricks/LTX-2.3" | ||
| }, | ||
| { | ||
| "name": "Gemma-3-12B-it abliterated LoRA (rank 64)", | ||
| "kind": "model", | ||
| "sizeGb": 0.6, | ||
| "repoId": "Comfy-Org/ltx-2" | ||
| }, | ||
| { | ||
| "name": "TTS-Audio-Suite (voice conversion for the assemble workflow)", | ||
| "kind": "customnode", | ||
| "url": "https://github.com/diodiogod/TTS-Audio-Suite" | ||
| } | ||
| ], | ||
| "image": "yanwk/comfyui-boot", | ||
| "tag": "cu130-megapak-pt211-20260803", | ||
| "exposedPorts": [ | ||
| 8188 | ||
| ], | ||
| "entrypoint": [ | ||
| "/bin/bash", | ||
| "-c" | ||
| ], | ||
| "commandFile": "comfyui-ugc-bootstrap.sh", | ||
| "workflows": [ | ||
| { | ||
| "id": "ocean_ugc_multishot", | ||
| "name": "Multishot reel — one shot per Run", | ||
| "description": "An image input plus two prompt boxes — a style box reused by every shot and a scene box you retype between runs. One Run renders one 9:16 clip and saves its last frame as lastframe_….png. The Shot start dial decides whether that image continues the take seamlessly (1.0) or acts as a character reference for a hard cut to a new scene (~0.35). With no image at all, the style prompt builds the character instead.", | ||
| "file": "workflows/ocean_ugc_multishot.json" | ||
| }, | ||
| { | ||
| "id": "ocean_ugc_assemble", | ||
| "name": "Assemble reel", | ||
| "description": "Concatenates up to 8 rendered shot clips (video + audio) into a single reel using core ComfyUI video nodes, then converts every voice in the stitched track to Shot 1's voice so the reel does not change speaker at each cut — pick clips in the LoadVideo dropdowns, bypass any slots you don't need, and Run. No upload and no script: it reads the reference voice straight off the clips you already rendered.", | ||
| "file": "workflows/ocean_ugc_assemble.json" | ||
| } | ||
| ], | ||
| "userConfigurableEnvVars": [ | ||
| { | ||
| "key": "COMFY_WORKFLOW_ID", | ||
| "validation": "^[A-Za-z0-9_-]+$" | ||
| }, | ||
| { | ||
| "key": "COMFY_WORKFLOW" | ||
| } | ||
| ], | ||
| "requiredResources": [ | ||
| { | ||
| "id": "cpu", | ||
| "min": 8, | ||
| "recommended": 16, | ||
| "unit": "cores" | ||
| }, | ||
| { | ||
| "id": "ram", | ||
| "min": 48, | ||
| "recommended": 128, | ||
| "unit": "GB" | ||
| }, | ||
| { | ||
| "id": "disk", | ||
| "min": 45, | ||
| "recommended": 85, | ||
| "unit": "GB" | ||
| }, | ||
| { | ||
| "kind": "discrete", | ||
| "type": "gpu", | ||
| "min": 1, | ||
| "recommended": 1, | ||
| "unit": "count", | ||
| "description": "CUDA GPU, 48 GB+ VRAM recommended (LTX-2.3 22B fp8 + Gemma-3-12B encoder)" | ||
| } | ||
| ] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| { | ||
| "id": "ltx-video-ugc-product", | ||
| "name": "ComfyUI — UGC product video (LTX-2.3)", | ||
| "description": "ComfyUI preloaded with LTX-2.3 for vertical short-form product video: a product photo becomes a 9:16 clip with camera motion and ambient audio, capped at the graph's 5 seconds (126 frames at 25 fps). Select a persistent-storage bucket: it holds ComfyUI's whole base directory, so the 38 GiB of weights download once and are reused, and generated clips land in the bucket root. Needs a CUDA GPU with 48 GB+ VRAM.", | ||
| "kind": "bundle", | ||
| "service": "comfyui", | ||
| "outcome": "Turn a product photo into a 9:16 clip with camera motion and ambient audio.", | ||
| "category": "video", | ||
| "includes": [ | ||
| { | ||
| "name": "LTX-2.3 22B dev (fp8)", | ||
| "kind": "model", | ||
| "sizeGb": 29.2, | ||
| "repoId": "Lightricks/LTX-2.3-fp8" | ||
| }, | ||
| { | ||
| "name": "Gemma-3-12B-it text encoder (fp4 mixed)", | ||
| "kind": "model", | ||
| "sizeGb": 9.5, | ||
| "repoId": "Comfy-Org/ltx-2" | ||
| }, | ||
| { | ||
| "name": "LTX-2.3 22B distilled LoRA (rank 111)", | ||
| "kind": "model", | ||
| "sizeGb": 2.7, | ||
| "repoId": "Comfy-Org/ltx-2.3" | ||
| }, | ||
| { | ||
| "name": "LTX-2.3 spatial upscaler x2", | ||
| "kind": "model", | ||
| "sizeGb": 1.0, | ||
| "repoId": "Lightricks/LTX-2.3" | ||
| }, | ||
| { | ||
| "name": "Gemma-3-12B-it abliterated LoRA (rank 64)", | ||
| "kind": "model", | ||
| "sizeGb": 0.6, | ||
| "repoId": "Comfy-Org/ltx-2" | ||
| } | ||
| ], | ||
| "image": "yanwk/comfyui-boot", | ||
| "tag": "cu130-megapak-pt211-20260803", | ||
| "exposedPorts": [ | ||
| 8188 | ||
| ], | ||
| "entrypoint": [ | ||
| "/bin/bash", | ||
| "-c" | ||
| ], | ||
| "commandFile": "comfyui-ugc-bootstrap.sh", | ||
| "workflows": [ | ||
| { | ||
| "id": "ocean_ugc_product", | ||
| "name": "Product → vertical clip", | ||
| "description": "Upload a product photo, get a 9:16 clip with camera motion and ambient audio.", | ||
| "file": "workflows/ocean_ugc_product.json" | ||
| } | ||
| ], | ||
| "userConfigurableEnvVars": [ | ||
| { | ||
| "key": "COMFY_WORKFLOW_ID", | ||
| "validation": "^[A-Za-z0-9_-]+$" | ||
| }, | ||
| { | ||
| "key": "COMFY_WORKFLOW" | ||
| } | ||
| ], | ||
| "requiredResources": [ | ||
| { | ||
| "id": "cpu", | ||
| "min": 8, | ||
| "recommended": 16, | ||
| "unit": "cores" | ||
| }, | ||
| { | ||
| "id": "ram", | ||
| "min": 48, | ||
| "recommended": 128, | ||
| "unit": "GB" | ||
| }, | ||
| { | ||
| "id": "disk", | ||
| "min": 40, | ||
| "recommended": 80, | ||
| "unit": "GB" | ||
| }, | ||
| { | ||
| "kind": "discrete", | ||
| "type": "gpu", | ||
| "min": 1, | ||
| "recommended": 1, | ||
| "unit": "count", | ||
| "description": "CUDA GPU, 48 GB+ VRAM recommended (LTX-2.3 22B fp8 + Gemma-3-12B encoder)" | ||
| } | ||
| ] | ||
| } | ||
102 changes: 102 additions & 0 deletions
102
docs/serviceTemplates/minimax-h3-video-ugc-multishot.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| { | ||
| "id": "minimax-h3-video-ugc-multishot", | ||
| "name": "ComfyUI — UGC multishot reel (MiniMax H3)", | ||
| "description": "ComfyUI preloaded with MiniMax H3 (open-weights, int8) for a vertical UGC reel where every beat carries native stereo audio — voice, room tone and music generated in the same forward pass, so there is no TTS step and no voice-conversion node pack riding along the way the LTX UGC templates need. One Run renders about 30 seconds with six shots and one consistent character, because the graph chains H3's two modes end to end: beat 1 is FL2VA, whose first_frame literally becomes frame 0 so your uploaded photo opens the video, and beat 2 is Ref2VA, the only mode that accepts a reference video — and it is fed the last 3 seconds of beat 1 directly, as IMAGE and AUDIO tensors rather than a saved MP4, so face, wardrobe, room, camera style and voice all carry forward with no re-encode. 15 seconds is H3's ceiling per generation and no wiring changes that, so the join at 00:15 is a hard cut between two passes, not a continuous take; write beat 2 as a deliberate new angle and it reads as editing. A 'Second beat — 30 s total' boolean drives lazy switches: turn it off and beat 2's checkpoint is never loaded and its sampling pass never runs, giving a 15-second beat in about half the time for iteration. Four prompt boxes, because the two modes take different contracts and H3 mandates the section order subject_definitions → summary → retention_analysis → detailed_description → overall_soundscape → non_diegetic_music: box A (Cast & references) and box D (Audio & music) are set once, box B is beat 1's integrated_multimodal_description and box C is beat 2's summary, retention_analysis and detailed_description. Two StringFormat nodes join them per stage — beat 1 gets a fixed instruction line plus B and D, beat 2 gets A, C and D in the mandated order. retention_analysis is the section actually holding the character's face steady, and it names the chained beat-1 tail as <Video 1>. Only the subject photo is active; product and location stills, an external style/motion video and a voice-lock clip all ship bypassed and are safe to leave that way, since an unwired reference socket is natively valid — H3 accepts up to 9 images, 3 videos (2–15 s each, 15 s total), 3 audio, 12 files overall. No turbo LoRA ships: the 4-step turbo LoRA is about 2.5x faster but clips and noises the audio path, which is this template's headline feature, so full-step sampling with the beta scheduler is the only path installed. One control panel on the canvas drives both beats — a single Resolution, beat length, steps and seed — because two resolutions that drifted apart would make the joining ImageBatch silently rescale beat 2 to beat 1's dimensions, a quality loss with no error; `ref_image_size` is the only dial still promoted onto a stage. fps is a model constant, not a setting: H3 generates at exactly 24 and the frame-grid expression hard-codes `a * 24`, so the node is titled 'Join beats — 24 fps (H3 is fixed at 24, do not change)' and any other value only desyncs audio from picture. Beats render 15 s each (length 362, the top of H3's trained 124–362 range); the shipped Resolution default is 0.6 MP at 9:16 (608x1056) so the first Run finishes quickly; raise it to 0.97 MP for 768x1344, H3's native canvas and its documented cap. 1.0 MP is deliberately not the default: the node's formula turns it into 768x1376, overshooting the long-edge cap. Steps ship at 15, the practical floor, with 20 for a final render; drop to 0.8 MP (672x1216) or shorter beats when you want a Run to finish sooner, since cost is dominated by latent tokens and attention is quadratic in them. Weights total 59.1 GB and the chained design loads both checkpoints per Run, so one 80 GB+ card (H200/H100 class) holds everything resident and offloads nothing; the launch script adds --highvram automatically when the card's VRAM covers the downloaded weights with 3/2 headroom, which keeps models resident instead of unloading them to system RAM after every use — without it a 20 GB checkpoint is staged rather than resident and streams every step, and the VAEs re-stage on each decode. The script logs the decision so you can see which way it went. A second GPU does not make a single Run faster — H3 is CFG-distilled so the CFG-split node has one conditioning and nothing for the second card, core ComfyUI has no tensor parallelism, and the two beats are sequential by construction; only a second container running a separate job uses one. Each beat also carries three optional device-placement nodes (text encoder, video VAE, audio VAE), shipped bypassed on default because they are pointless on a big card and useful only on something like 2×24 GB, where moving the 14.6 GB encoder to gpu:1 stops it evicting the diffusion model. 24 GB still runs the template at 0.4 MP but offloads heavily and swaps checkpoints mid-Run. Select a persistent-storage bucket on launch: it holds ComfyUI's whole base directory, and without one the roughly 59 GB of weights (two 19.5 GB checkpoints, a 14.6 GB text encoder, video and audio VAEs) re-downloads every launch and is discarded on stop; with a bucket selected, beat and reel clips land in the bucket root where the storage API's listFiles can see them. This template tops out at H3's native resolution: MiniMax's 2K mode (hosted `H3-Regenerate-2K`) is a hosted-only feature, absent from the open-weights release, so there is no 2K path here.", | ||
| "kind": "bundle", | ||
| "service": "comfyui", | ||
| "outcome": "Build a multi-shot 9:16 UGC reel with native synced audio, one character and one voice throughout.", | ||
| "category": "video", | ||
| "includes": [ | ||
| { | ||
| "name": "MiniMax H3 Ref2VA (int8)", | ||
| "kind": "model", | ||
| "sizeGb": 19.5, | ||
| "repoId": "Comfy-Org/MiniMax-H3" | ||
| }, | ||
| { | ||
| "name": "MiniMax H3 FL2VA (int8)", | ||
| "kind": "model", | ||
| "sizeGb": 19.5, | ||
| "repoId": "Comfy-Org/MiniMax-H3" | ||
| }, | ||
| { | ||
| "name": "Qwen3-VL-32B text encoder (nvfp4 awq)", | ||
| "kind": "model", | ||
| "sizeGb": 14.6, | ||
| "repoId": "Comfy-Org/MiniMax-H3" | ||
| }, | ||
| { | ||
| "name": "H3 video VAE (fp16)", | ||
| "kind": "model", | ||
| "sizeGb": 4.9, | ||
| "repoId": "Comfy-Org/MiniMax-H3" | ||
| }, | ||
| { | ||
| "name": "H3 audio VAE (fp32, stereo)", | ||
| "kind": "model", | ||
| "sizeGb": 0.6, | ||
| "repoId": "Comfy-Org/MiniMax-H3" | ||
| } | ||
| ], | ||
| "image": "yanwk/comfyui-boot", | ||
| "tag": "cu130-megapak-pt211-20260812", | ||
| "exposedPorts": [ | ||
| 8188 | ||
| ], | ||
| "entrypoint": [ | ||
| "/bin/bash", | ||
| "-c" | ||
| ], | ||
| "commandFile": "comfyui-ugc-bootstrap.sh", | ||
| "workflows": [ | ||
| { | ||
| "id": "ocean_h3_ugc_multishot", | ||
| "name": "Multishot reel — one Run, 30 s, six shots", | ||
| "description": "One Run renders ~30 s with six shots and one consistent character, with native synced voice, room tone and music throughout. Two chained subgraphs: beat 1 (FL2VA) starts from your uploaded photo as literal frame 0, and beat 2 (Ref2VA) is handed the last 3 s of beat 1 directly as frames plus audio — no file, no re-encode — so it inherits face, wardrobe, room, camera style and voice automatically. Four prompt boxes: A (Cast & references) and D (Audio & music) are set once, B is beat 1's body and C is beat 2's summary, retention_analysis and detailed_description; two StringFormat nodes give each mode its own correct section order. A 'Second beat' boolean drives lazy switches, so turning it off renders only beat 1 — beat 2's checkpoint never loads and its sampling pass never runs, which halves iteration time. Product and location stills, an external style/motion video and a voice-lock clip all ship bypassed and are safe to leave bypassed. The seam at 00:15 is a hard cut: 15 s is H3's ceiling per generation.", | ||
| "file": "workflows/ocean_h3_ugc_multishot.json" | ||
| }, | ||
| { | ||
| "id": "ocean_h3_ugc_assemble", | ||
| "name": "Assemble reel", | ||
| "description": "Concatenates up to 8 rendered beat clips (video + audio, already final) into a single reel using core ComfyUI video nodes — no external editor and no voice-conversion pass, since every beat already carries its own synced audio. Pick clips in the Beat 1–8 LoadVideo dropdowns, bypass any slots you don't need, and Run.", | ||
| "file": "workflows/ocean_h3_ugc_assemble.json" | ||
| } | ||
| ], | ||
| "userConfigurableEnvVars": [ | ||
| { | ||
| "key": "COMFY_WORKFLOW_ID", | ||
| "validation": "^[A-Za-z0-9_-]+$" | ||
| }, | ||
| { | ||
| "key": "COMFY_WORKFLOW" | ||
| } | ||
| ], | ||
| "requiredResources": [ | ||
| { | ||
| "id": "cpu", | ||
| "min": 8, | ||
| "recommended": 16, | ||
| "unit": "cores" | ||
| }, | ||
| { | ||
| "id": "ram", | ||
| "min": 128, | ||
| "recommended": 256, | ||
| "unit": "GB" | ||
| }, | ||
| { | ||
| "id": "disk", | ||
| "min": 70, | ||
| "recommended": 140, | ||
| "unit": "GB" | ||
| }, | ||
| { | ||
| "kind": "discrete", | ||
| "type": "gpu", | ||
| "min": 1, | ||
| "recommended": 1, | ||
| "unit": "count", | ||
| "description": "One CUDA GPU. The chained design loads both checkpoints per Run and the weights total 59.1 GB (19.5 + 19.5 + 14.6 + 4.9 + 0.6), so a single 80 GB+ card (H200/H100 class) holds everything resident with nothing offloaded — launch it with CLI_ARGS = --highvram. Deliberately ask for one and not two: a second GPU cannot accelerate a single Run here. H3 is CFG-distilled, so the CFG-split node sees one conditioning and has nothing to hand the second card; core ComfyUI has no tensor parallelism, so one sampling pass runs on one device; and beat 2 consumes beat 1's frames, so the two beats cannot overlap. Booking a second card would cost money for an idle device. Two GPUs help only in two cases, neither of which this count controls: running a second container for a parallel job, or a small dual-GPU box (2x24 GB) where the optional device-placement nodes in each beat move the 14.6 GB text encoder off the sampling card. GPU class matters directly here, CPU cores do not — sampling is GPU-bound." | ||
| } | ||
| ] | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Both templates set
disk.minbelow their ownincludesmanifest sum. The shared root cause is thatrequiredResources.diskwas not derived from the declared download sizes.requiredResourcesgatesSERVICE_START, so a consumer granted the minimum starts the service, pays, and then runs out of space during the download.docs/serviceTemplates/ltx-video-ugc-product.json#L81-L86: theincludesentries sum to 43.0 GB whiledisk.minis 40. Raisedisk.minabove the sum, and align the "38 GiB" figure indescription(line 4) with the manifest.docs/serviceTemplates/ltx-video-ugc-multishot.json#L92-L97: the same 43.0 GB of models plus the unsizedTTS-Audio-Suiteentry against adisk.minof 45. SetsizeGbon that entry and raisedisk.minto cover the node pack and its Hugging Face weights.📍 Affects 2 files
docs/serviceTemplates/ltx-video-ugc-product.json#L81-L86(this comment)docs/serviceTemplates/ltx-video-ugc-multishot.json#L92-L97🤖 Prompt for AI Agents