Before you start
- Start image (optional): Supply an image whenever Start frame is enabled; disable that endpoint when omitting it.
- End image (optional): Supply an image whenever End frame is enabled; disable that endpoint when omitting it.
- Motion and scene prompt: Replace the saved ice-kitten-to-beast example with your scene, transition, motion and camera behavior.
- Negative prompt: Retain or adapt the saved Chinese text describing unwanted artifacts, blur, overexposure, static imagery, anatomical errors and clutter.
Start with two images and a matching transition
Create a silent video by supplying beginning and ending images, replacing the saved motion prompt, and starting with the retained defaults. The configured result is 640 × 640 pixels, 81 frames at 16 FPS and approximately 5.1 seconds of playback. This duration is calculated playback length, not generation time or an executed example. Keep batch size 1 for a single clip.
The named result is output:83, labeled Sweet Tea Preview Video. Its source is slot 0 of CreateVideo node 86, connected to the video input of terminal node 83. Intermediate frames and latents are not separate exposed outputs.
Both endpoint loaders are enabled by default, although their interface upload defaults are empty. The graph retains example filenames; their presence does not establish that those files are available in your runtime. Resolve the prerequisites below before generating.
- Upload your beginning image to Start image. If you intend to omit this boundary, disable Start frame using its interface bypass control __bypass_80 instead of leaving the enabled loader empty.
Look for: An enabled loader supplies IMAGE slot 0 to node 81 start_image; an omitted endpoint is disabled. The bypass field is an interface action, not a LoadImage input.
- Upload your ending image to End image. If you intend to omit this boundary, disable End frame using its interface bypass control __bypass_89.
Look for: An enabled loader supplies IMAGE slot 0 to node 81 end_image; an omitted endpoint is disabled.
- Replace Motion and scene prompt with instructions matching your images, including the motion or transformation and camera behavior. Review Negative prompt for unwanted constraints on your scene.
Look for: Positive text from node 90 and negative text from node 78 condition both samplers through node 81.
- With prerequisites resolved and an image supplied for each enabled endpoint, generate using the starting defaults and open Sweet Tea Preview Video at output:83. Assess the motion and endpoint resemblance against your intended result.
Look for: The complete generation path returns one exposed silent video result. Endpoint resemblance is assessed visually; pixel-exact copying is not established.
Outputs: output:83
Resolve the exact package requirements
The selected graph requires these four model files and the Sweet Tea node pack:
| Component | Native binding and directory |
|---|---|
umt5_xxl_fp8_e4m3fn_scaled.safetensors | CLIPLoader 72, clip_name; text_encoders; type=wan, device=default |
wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors | UNETLoader 76, unet_name; diffusion_models; weight_dtype=default |
wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors | UNETLoader 77, unet_name; diffusion_models; weight_dtype=default |
wan_2.1_vae.safetensors | VAELoader 79, vae_name; vae |
tea-time-labs/sweet-tea-nodes | Required node pack for the Sweet Tea preview path |
All five components are mandatory and recorded as unresolved in preparation; this is a catalog state, not a report that your installation lacks them. Model provider versions are recorded as main, without component checksums. No node-pack version or commit is retained. Model filenames containing fp8 do not change the recorded UNETLoader weight_dtype setting from default, and do not establish a complete runtime precision configuration.
Graph metadata records comfy-core 0.3.45 on most core nodes and 0.3.48 on WanFirstLastFrameToVideo 81. These are retained node metadata, not a tested minimum runtime version. No scoped GPU or RAM recommendation, supported platform list, or comparable generation timing is supplied. The preparation record's 1024 × 1024 Standard configuration differs from the graph's 640 × 640 default and has no measured profile. Neither configuration establishes hardware fit.
A loader reports a missing model, or SweetTeaPreviewVideo is unavailable.
The graph depends on the named model files and the Sweet Tea node pack.
Check: Use the actual error's filename or unavailable class to identify the prerequisite; unresolved catalog state alone is not a runtime diagnosis.
Make the named model available in its recorded model directory, or resolve the required node pack and class. Compatibility of substitute model files is not established by this pack.
Endpoint conditioning feeds both stages
LoadImage nodes 80 and 89 feed IMAGE slot 0 into start_image and end_image on WanFirstLastFrameToVideo 81. Their MASK slots are unused. CLIPLoader 72 supplies CLIPTextEncode nodes 90 and 78, whose outputs enter node 81 as positive and negative. Node 81 also receives vae from 79 and the requested width, height, length and latent batch size. Its slots 0 and 1 provide positive and negative conditioning to both samplers; slot 2 provides the initial latent to node 84. The optional clip_vision_start_image and clip_vision_end_image inputs are unconnected.
The retained source describes the images as constraints on the enabled boundaries. It does not supply the internal endpoint encoding, resizing or masking implementation, or establish pixel-exact copying. Uploaded alpha masks have no connected consumer, so they do not protect regions or preserve transparency. Motion and negative text condition both stages regardless of endpoint selection.
The task family is generate_video. The interface's inferred role and modality labels are not mechanisms: frames and fps are numeric controls, guidance ports bind to numeric cfg, and the initial sampler and shift controls do not supply source images. Use the actual graph bindings when adapting this recipe. Its empty compiled capability and rule lists do not negate the retained graph's documented video path.
Which boundaries should be image-conditioned?
- Both endpoints: Supply images to both enabled loaders to constrain the beginning and ending.Continue
- One endpoint: Disable the omitted endpoint; only the supplied boundary is image-conditioned.Continue
- Neither endpoint: Disable both loaders; the retained source describes generation with text conditioning and no endpoint images. It supplies no comparative quality evidence for this configuration.Continue
An omitted endpoint still produces an image-loader error.
An enabled empty LoadImage remains a loader; an empty upload is not the endpoint-disable action.
Check: The error identifies node 80 or 89, and that endpoint is still enabled without an available image.
Separate generated frames from playback timing
The shape controls affect node 81; playback controls affect CreateVideo 86 after decoding.
| Interface port | Native input | Starting value and accepted interface values |
|---|---|---|
width | 81 width | 640 px; 16–16384 in increments of 16 |
height | 81 height | 640 px; 16–16384 in increments of 16 |
frames | 81 length | 81; 1, 5, 9 and so on, with declared maximum 16384 |
batch_size | 81 batch_size | 1; 1–4096 |
fps | 86 fps | 16; 1–120 in increments of 1 |
For frame count, the stated sequence is 1 + 4k for nonnegative integer k. Its largest value within the declared maximum is 16381, not 16384. These interface limits describe control ranges, not feasible hardware configurations. Larger latent batches do not create separate named video outputs; retain batch size 1 for a single clip.
Playback duration is frame count divided by FPS. Changing FPS changes the timing of the generated frames without adding frames. Changing length changes the requested generated sequence. Neither shape nor frame-count changes have numerical memory or speed estimates in the retained pack. The adaptations below are unexecuted control examples, not measured configurations.
- Keep a single latent batch
- Uses the single-clip starting configuration. Larger batches do not expose separate named video results.
- Play the same frames at 24 FPS
- Changes playback timing without requesting additional frames. With the retained length of 81, calculated playback duration is 3.375 seconds.
- Request 41 generated frames
- Changes the requested sequence length to a valid 1 + 4k value. At the retained 16 FPS, calculated playback duration is 2.5625 seconds; the motion result and hardware fit are not measured here.
Keep the high-noise and low-noise stages coordinated
The high-noise model travels from UNETLoader 76 through ModelSamplingSD3 73 to KSamplerAdvanced 84. The low-noise model travels from 77 through ModelSamplingSD3 74 to KSamplerAdvanced 87. Node 84 adds initial noise, samples from step 0 to the handoff at 10 in a 20-step schedule, and returns a latent with leftover noise. Node 87 receives that latent, adds no fresh noise, resumes at step 10 and completes the schedule. Its saved end_at_step=10000 does not make this a 10000-step run: its total steps value is 20. Refinement is part of the complete generation, not a separately requested finishing operation.
| Interface port | Native binding | Retained default |
|---|---|---|
initial_steps, refinement_steps | 84/87 steps | 20 each; total schedule length for each sampler |
initial_end_step, refinement_start_step | 84 end_at_step, 87 start_at_step | 10 each; shared handoff boundary |
initial_sampler, refinement_sampler | 84/87 sampler_name | euler each |
initial_scheduler, refinement_scheduler | 84/87 scheduler | simple each |
initial_guidance, refinement_guidance | 84/87 cfg | 4 each |
initial_shift, refinement_shift | 73/74 shift | 8.000000000000002 and 8 |
seed | 84 noise_seed | Interface -1; saved graph 984937593540091 |
For a deliberate schedule edit, keep both total step counts equal, match the schedulers, and make the initial handoff equal the refinement start within that schedule. Two steps=20 values describe two portions of a coordinated schedule, not two independent full 20-step passes. Steps accept 1–10000 and handoff inputs 0–10000; their individual ranges do not enforce the required relationship. Restore 20/20 and 10/10 if an experiment leaves the intended handoff unclear.
Guidance is independently adjustable for each stage, from 0–100 in increments of 0.1. Shift is applied independently to each model before sampling, from 0–100 in increments of 0.01. Sampler and scheduler alternatives are exposed by the interface, but the retained sources do not rank them or establish an optimal guidance, shift or handoff. Matching total steps and schedulers follows the retained configuration guidance; it is not proof that every experimental setting has equivalent behavior.
Decode frames, then choose video encoding
VAEDecode 85 receives samples from sampler 87 and vae from loader 79, producing IMAGE frames at slot 0. CreateVideo 86 receives those frames through images and produces VIDEO at slot 0. SweetTeaPreviewVideo 83 receives that VIDEO through video and returns the named result output:83. No audio is connected or exposed as an input in this recipe.
| Interface port | Native binding | Default and choices |
|---|---|---|
bit_depth | 86 bit_depth | 8; 8 or 10 |
output_format_83 | 83 format | auto; auto, mp4, mkv, webm |
output_codec_83 | 83 codec | auto; auto, h264, av1 |
output_crf_83 | 83 crf | -1; -1–63 in increments of 1 |
The native bit-depth tooltip says 10-bit keeps smoother gradients with less banding, but some players and downstream nodes may not support it. This supports trying 10-bit video creation when gradients matter; it does not guarantee an end-to-end 10-bit result for every encoding choice. Format selects the container, codec selects encoding, and CRF -1 retains automatic quality selection. CRF interpretation depends on the codec. No complete compatibility matrix, automatic-selection algorithm or codec-specific quality recommendation is retained.
These choices affect video creation and encoding after sampling. They do not repair endpoint conditioning or change the generated motion. Start with automatic format and codec, CRF -1 and 8-bit unless delivery requirements call for another supported choice.
Node 85 is VAEDecode, not VAEDecodeTiled, and exposes no tile controls. The retained general tiled-decode source describes a separate decode-stage mechanism; it does not create a tile_size input in this revision or supply a selected replacement recipe. Tiling would also leave model loading and denoising unchanged, so it cannot be treated as a remedy for every memory failure.
- Try 10-bit video creation
- The source guidance supports smoother gradients with less banding, subject to player, downstream and encoding compatibility. This does not establish a universal 10-bit delivery guarantee.
Where this approach stops
- Audio generation or a connected audio input in this graph
- Uploaded alpha-mask use or transparency preservation
- Guaranteed pixel-exact endpoint preservation
- Separate video outputs for batch members
- Four-step Lightx2v acceleration in this variant
