Nodes/SpicyAPI/Wan 3.0 · Reference to Video
ComfyUI Node

Wan 3.0 · Reference to Video

The cheapest way to keep a subject consistent

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
Wan 3.0 · Reference to Video
  • reference_image_urls
  • reference_video_urls
  • reference_audio_urls
  • video
  • task id
◄prompt►
◄reference_file_url►
◄reference_link_url►
◄aspect_ratio16:9►
◄enable_thinkingfalse►
◄resolution720p►
◄duration_seconds5►
◄generate_audiotrue►
◄enable_prompt_expansionmodel default►
◄seed0►

Keeping the same character across shots is the problem nobody has actually solved - the community rerouted it instead. Reference-to-video is that reroute applied to video: instead of training a face LoRA or stacking adapters, you hand the model a set of references about your subject and it generates a new shot that respects them. This is the base Wan 3.0 tier of it, and at $0.045/s at 480p it's the affordable entry to the idea.

Why the base tier

The Pro and Pro Prime reference nodes do the same job at three to five times the rate. The base node renders 480p, 720p or 1080p and takes the same reference limits - 10 images, 5 videos, 5 audio clips - so it's genuinely the right place to find out whether referencing works for your material before you spend Pro money on it. For talking-head content at 720p, the difference between tiers is much less dramatic than the price gap suggests.

The inputs, including the two that confuse people

reference_file_url - one document (PDF, DOCX, TXT, MD and similar) the model reads for characters, wardrobe, setting and action. Give it a filename from ComfyUI's input folder or a public https link. reference_link_url - one public web page that opens without a login. Both are listed as required, which surprises everyone the first time; in practice a paragraph of character notes as a .txt and a wiki page do the work, and adherence goes up noticeably when you bother.

Then the shot controls: prompt (the underlying model treats it as optional, though the node lists it as required - write one anyway), resolution (720p default, plus 480p and 1080p), aspect_ratio (16:9 default; adaptive follows the input), duration_seconds (5 by default, -1 for smart duration), generate_audio, enable_thinking (off by default - it makes the model reason about the brief and references first, slower but better on busy reference sets, and it switches on by itself when you supply a document or a link), enable_prompt_expansion (a dropdown here, defaulting to model default, which simply leaves the choice to the service), and seed.

The reference media lives in three autogrow sockets: reference_image_urls (up to 10), reference_video_urls and reference_audio_urls (5 and 15 seconds total each). Connect one and another socket appears - no comma-separated URL strings to fight with.

Outputs: video into Save Video, task id into anything that wants a string.

Watch the reference billing

Reference video seconds get billed with your output seconds. Ten seconds of reference footage plus a ten-second render is twenty billed seconds, so at 480p that's $0.90 instead of $0.45. Images and audio references are the cheap route; keep video references for when motion transfer is the whole point.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi

Or search SpicyAPI in ComfyUI Manager. Restart, then Settings > SpicyAPI → paste a key from spicyapi.ai/console/keys and restart once more so the node list is built from your account's catalogue. SPICY_API_KEY for headless installs. Nothing to download, nothing to pip install - the pack's dependency list is empty and it uses only libraries ComfyUI already ships. Python 3.10+ and the V3 node API (tested with ComfyUI 0.39).

Practical notes

Set Max cost per run in the SpicyAPI settings - the pack quotes every request before submitting and stops anything over your ceiling. Draft at 480p. Leave the seed fixed so a re-queue reuses the cached result instead of buying another, and switch to randomize only when you mean it. And remember cancelling stops the wait, not the job: it completes server-side and is charged if it succeeds. If it errors: No SpicyAPI key is set, 40310 (verify your email), 40004 (change the option named - no deployment serves that combination), or a message with a request_id, which is exactly what support wants.

CategorySpicyAPI/Video/Alibaba

Inputs (13)

NameTypeDefaultDescription
promptSTRINGDescribe the subject, action, camera, light, pacing, and boundaries for the shot.
reference_file_urlSTRINGOne reference document (PDF, DOCX, TXT, MD and similar) that the model reads for characters, wardrobe, setting and action.
reference_link_urlSTRINGOne public web page the model reads for reference. It must open without a login.
aspect_ratioCOMBO16:9Output aspect ratio; adaptive follows the input media and the intent.
enable_thinkingBOOLEANfalseLet the model reason about the brief and the reference material before generating. Helps with complex references; slower. Switches on by itself when a reference file or link is given.
resolutionCOMBO720pOutput resolution.
duration_secondsCOMBO5Requested output length in seconds. Pass -1 for smart duration: the model picks the length from the prompt and any input media instead of a fixed number. With reference videos, their total length plus the output length must not exceed 30 seconds, and the reference video seconds are billed together with the output seconds.
generate_audioBOOLEANtrueRequest generated audio with the video.
enable_prompt_expansionCOMBOmodel defaultAllow the service to expand the submitted creative brief before generation.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.
reference_image_urlsoptCOMFY_AUTOGROW_V3Reference images, up to 10 items.
reference_video_urlsoptCOMFY_AUTOGROW_V3Reference videos, up to 5 items and 15 seconds in total.
reference_audio_urlsoptCOMFY_AUTOGROW_V3Reference audio, up to 5 items and 15 seconds in total.

Outputs (2)

NameTypeDescription
videoVIDEO—
task idSTRINGThe SpicyAPI task id, for the console logs or support.