CivArchive
    Wan Endless Facials - v1.0
    NSFW
    Preview 70646963

    This workflow is to extend Wan 2.1 video generations endlessly without needing extra VRAM/RAM.

    Had some questions on my extended facials videos, and unfortunately combining via ffmpeg strips out the workflow. This is a real hacky approach so not for beginners. It doesn't have to be used for facials only that's just what I refined for the loras and prompt, it could be for anything that has repeated action (endless cowgirl?).

    Instructions:

    STEP 1: Place your starting image in your /output directory, with no other images there

    STEP 2: Set the incrementing integer to 0 in the input image loading stage

    STEP 3: Queue as many iterations as you want, after 4 quality starts to degrade quickly

    STEP 4: Confirm the sequential .mp4 files are in the output folder, and paste this ffmpeg script into the command line in that folder in order to concatenate them all into one large file:

    (for %i in (*.mp4) do @echo file '%i') > mylist.txt

    ffmpeg -f concat -safe 0 -i mylist.txt -c copy combined.mp4

    If you get the "list index out of range" error then you forgot to reset the increment INT to 0

    Any diffusion model or GGUF should work, including 480p. I am not able to fit 1280x720 on my 12GB VRAM but here are the resolutions I've had good luck with:

    720P: 576x1024

    480P: 480x832, 480x640, 360x480

    TODO:

    - Improve image batch logic so you don't have to reset to zero each time

    - Concatenate video files in the workflow

    Description

    v1.0:

    relies on manually resetting increment INT and manually combining videos with ffmpeg afterwards

    FAQ

    Comments (39)

    KiefstormApr 17, 2025
    CivitAI

    Clever idea, thanks

    zengrathApr 18, 2025
    CivitAI

    This is interesting. I been very surprised to see that so far the technology still hasn't developed to allow for extended videos. even on premium services. I don't understand why for example there isn't modules and a comfyui setup yet that could automatically take last frame of a video, make it start frame, and pair it with a module that looks at the original image you started with and retains that style or person or face, and applies that as workflow continues to generate more segments of extended video. using. I feel like technology should already be there yet it's not because no one has really released anything to do it yet. this is kind of on the line of what i was thinking, though not exactly and it's a hack not an official feature built int. I may try this out later but just curious why this doesn't exist yet, even in premium models. I know there is plenty of varied ways in image gen for example to use an input image to then generate images in that style, that person, and so on, so can't this idea be also applied to video generation to both retain the original image while using last frame as first frame of a new segment and go on forever almost. I guess you would just have to merge all video files out-side of comfyui at the end.

    axicecApr 18, 2025

    tldr

    firemanbrakeneckApr 18, 2025· 1 reaction

    Classically, it was entirely impossible to do any of that to a reasonable extent - what kind of function defines "person" or "style" in terms of pixels?

    As for deep learning, first and foremost - It has not been around long enough to achieve the abundant goals planned over the years. Think what vanilla sd1.5 did in 2022, and vid gen from just last year (entertainingly, I mentioned in a show & tell how vid gen is the future, evolving from an image gen mod to animatediff, tooncrafter).

    Second, new model development pace is so rapid, and each model has such different idiosyncracies, that any complex tooling goes right out the window - vanilla devs don't have time to support it, companies have no financial interest to invest in it. So you get enthusiasts writing one offs like this.

    Third, deep models themselves have very limiting constraints: The more 'features' a model has, the more quality data (exponentially) it'd need to be trained with, and longer - very deep pockets. Loras can have a relatively easy time because someone else trained a diverse model. And consistency is a particular weakness of deep learning - all this architecture is designed to memorise a few high level details which a human can easily distinguish ("which person is this"), and they still fare so poorly compared to human imagination.

    I anticipate that in the near future, much will be possible, but nothing will be easy - reality will be a manifestation of human determination, a finite resource, and machine ingenuity, an oxymoron.

    maninka55563Apr 18, 2025· 4 reactions

    This already hasn't aged well and it's only been 9 hours.

    tbane526Apr 20, 2025

    @maninka55563 What do you mean by that? Has something else come out?

    tbane526Apr 20, 2025

    @axicec haha at first I was thinking they were repeating the same 2 points.

    firemanbrakeneckApr 20, 2025· 1 reaction

    @tbane526 My best guess would be framepack, since it provides an easily installable interface (presumably, haven't tested) for video extension based on a modded hunyuan. Whether it lives up to the hype remains to be seen, however.

    7621832Apr 20, 2025
    CivitAI

    I see there's a file named facials_50 in the workflow. Where to find that Lora?

    blaApr 21, 2025

    I think that one is gone. there are two linked loras here and one of them is facials_60

    5498982Apr 30, 2025

    And if you could be so kind as to identify the other two? Thanks in advance.

    RumabenApr 21, 2025
    CivitAI

    I'm getting 'ImageResizeKJ. list index out of range' if I add more than the initial one to the queue. I know that you write to then set the incrementing integer back to zero, but then it's just like starting a completely new generation. Perhaps I'm doing something wrong. :)

    markdalias
    Author
    Apr 21, 2025

    and you have the starting image in the output folder? The process is: image in folder, int=0, hit run

    RumabenApr 22, 2025

    @markdalias I do yes but when the next generation from the queue is supposed to start I just get the error. No big issue though. Your workflow is otherwise great and I can just save the last frame and generate from that.

    g3ni3310Apr 23, 2025· 1 reaction

    This is a really nice workflow. I had the same issue with follow up generations, I think it's because it can't find the last frame generated. I changed my folders to drop the last frame in the same folder as the input and it works perfectly now. In my case, input is: ./ComfyUI/output/source_1 and endframe output path is: ./source_1/wan_endless_endframe

    The new files land in the same source folder, but need different paths as they have different path origins.

    That works for me, think it should for others as well.

    Even if it works to queue 4 identical prompts I recommend submitting them one by one to direct different action and use different loras throughout the sequence. More fun and more control.

    On a side note I got a 4x performance boost by changing the model to a guff version with no apparent visual difference in quality.

    dontaddspamApr 29, 2025

    @g3ni3310 Hey there, I'm running into the same issue however I don't see anywhere in the workflow to specify the output path, just the filename prefix. Also this is probably a dumb question but is queueing the number of iterations just setting the batch number in ComfyUI? When I do so, it still uses the starting image instead of using the endframe of the first generated video. Thanks.

    g3ni3310May 1, 2025· 1 reaction

    @dontaddspam Hey! You're on the right track — the key is the "Save Image" node. That’s what saves the last frame (usually frame 81), and for the workflow to continue correctly, that image needs to be saved in the same folder as your original source image.

    To your other question:

    Yes, setting the batch number is how you queue multiple iterations, but for it to generate sequentially (using the last frame from the previous run), a few things need to be in place:

    The "Int" node controls which frame to use as first frame:

    It should start at 0 for the first pass.

    It should be set to "increment after generation" so it moves to 1, 2, 3, etc., after each full render.

    So after the first pass, the value changes to 1, then 2, and so on — this tells the script which frame to use next.

    Your source folder should contain only the original source image at the beginning.

    After the first generation, that folder should contain both:

    Your original image

    The newly saved endframe, which becomes the input for the next pass.

    Bonus tip:

    You can re-run any step as many times as you like until you're happy with the result — but make sure to delete any previous endframes you don’t want to continue from. The script will always try to grab the latest one based on the frame count, so cleaning up helps ensure it continues from the correct point.

    dontaddspamMay 3, 2025

    @g3ni3310 Thanks for the reply! Unfortunately I think there's something I'm missing. Changing the source directory to anything other than ./output will lead to a "ImageResizeKJ list index out of range" error, although I noticed that the output videos and endframe seem to be hardcoded to be put into /output rather than where your source image is e.g. /output/FOLDERNAME. When I place my source image into just /output and I queued up 4 generations, I no longer got an index out of range error but rather than continuing from the previous video's endframe, it created 4 videos using the starting image. Any help is appreciated, thanks.

    Edit: I think I finally get it now (I think) but I misunderstood how the workflow functions. I thought the Int value was just a counter but it actually looks for an image with a name that ends with that index number, e.g. endframe_01, endframe_02, etc. Then you manually select the iteration you want to generate off of. That explains why it seemed like it wasn't working since it creates a wan_endless_01 which is the same as your starting image, then the wan_endless_endframe_01. Since it's just looking for something that ends with "1", it kept grabbing the starting image. Also I thought this workflow automatically creates all the videos of a specified batch size. So setting a batch size of 4 will create video 1 using the starting image, then video 2 using the endframe of video 1 as a reference, and so on all at once.

    luna311Apr 27, 2025
    CivitAI

    Great workflow, thanks a bunch! Having a lot of fun testing it, but was wondering if you could you explain what the primitive does and what the part 3-4 boxes are for?

    ValnarApr 29, 2025
    CivitAI

    Bruh I get tons of errors and dont know how I can fix them :(

    MilenkoApr 30, 2025
    CivitAI

    Thx for this workflow. Where am I supposed to specify iterations ? in the WanImageToVideo or after the VAE in ImageDeBatch ?

    mag225658920May 1, 2025
    CivitAI

    Very interesting workflow. What I liked most here is that teacache works as it should and does not spoil the final result, and also does not turn into OOM when interpolating frames. And also an excellent combination of Lora scales, which results in excellent quality.
    However, I can't automate the creation of 2 and subsequent videos. If I put 2 tasks in the queue, then on the 2nd processing I get "list index out of range", if I manually start the queue, then on the second iteration I also get "list index out of range".
    That's why I fixed the integer in position 0 and manually after each iteration I transfer the final frame to the output folder. I also deleted the Resize Image node, because I load images of the appropriate size initially. By the way, the 480x720 size also works fine, this allowed me to add another 1 second to the generation.

    gman_umschtMay 1, 2025· 1 reaction

    I initially had also a problem with the subsequent videos, because the video save node also saves a png alongside each mp4. Here's how I have it working. The start image I just put as "0-something.png" into output folder. The node that saves the endframe does it as "endframe" + index.png also into the output folder. And the save movie is unchanged with its "wan_endless"+index. This way the img loader node does its index iteration correctly. Nevertheless afterwards it has to be reset to 0.
    Also what I often do is: Set the index to fixed at 0, do 3-4 variations of the 1st movie clip, then pick the best one, delete the failures and generate the rest starting at index 1

    gman_umschtMay 1, 2025
    CivitAI

    Thanks for your service! Works also very well with, uh, less mature content. Of course then the LORAs have to be disabled so as not to get surprises.

    Same_Onion_6691954May 1, 2025
    CivitAI

    clip and clip vision from workflow don't seem to exist, I had to pick different ones (for clip used umt5_xxl_fp8_e4m3fn_scaled and for clip vision clip_vision_h, only those would work), I have all 3 loras, it completely froze my PC twice when RAM usage got to 100% (page file set to 90GB btw) and took 2100 seconds to generate, it looks ok, but there is no cum, it just animated my picture a bit, do we have to specify somewhere in the prompts activation keywords for loras and add some specific prompting? If so where? Also I was getting some issues with the primitieint node (said I didn't have one), ended up updating all custom nodes, then comfy, then did update all, no I get some graph error when loading the workflow, but it still works, but again, does not produce facials, it just animated the image. Should extra prompts be specified in the florecen2run node, in the show text node, in the cr combine prompt, the 2nd show text node or in the positive prompt clip text encode node?

    Looks like the missing node was one adding prompts, so after manually adding it, it worked (and worked great) but damn is it fucking slow, any tips on speeding it up on 3000 series?

    mag225658920May 2, 2025

    @Same_Onion_6691954 sage attention, on my rtx 3090 less than 700 seconds for 5 seconds.

    101033May 21, 2025
    CivitAI

    You can set 'control after generate' to fixed to eliminate the need to constantly reset the value counter in the Int Node. You could also patch in a Wan Frame Enhancer Node to extend things, or a RIFE node for slow-mo.

    malfyJun 1, 2025
    CivitAI

    Mine is starting with the original image each time, the subsequent queues arent choosing the endframe of the previous video. Any idea why this might be happening?

    If the start_index is 0 (original image), and on the first output it creates the mp4, a start frame and an end frame, then wont start_index 1 on the next run be the newly created start frame which is the same as the original?

    malfyJun 2, 2025· 2 reactions

    I figured it out. Because I had an updated version of VHS video combine, I had to go into the workflow json and set this specifically to prevent the unwanted png from being output. VHS_MetadataImage: false

    Also, if anyone is interested I created a custom node, that lets you inter a number of iterations (5 second videos to combine), set the number of videos, automatically handle the concatenation, and reset the start_index integer to 0 when starting a new set. So for example I can set iterations 4, videos 10, and let it run all night, so I wake up to 10 20 second videos already combined.

    AcheParaHolaJun 3, 2025

    @malfy dude! thats magic! how is the node called?

    douglasrivitti789Jun 10, 2025

    @malfy I'm interested, how do I download this node?

    boobkake22Jun 16, 2025

    @malfy I'd be interested.

    Sexybeast10Sep 25, 2025

    @malfy would love to know about this node as well

    SD_AgamemnonJul 4, 2025
    CivitAI

    This is my favorite workflow but unfortunately I can't use it anymore. I updated my Comfyui and now my 4090 takes over 30 minutes. It was 9 minutes before. Do you have an idea?

    Competitive_Wafer870690Jul 22, 2025· 1 reaction

    same bro sometimes 1 minute to generate i2v 125 Frames and sometimes 40 minutes makes NO SENSE

    towasobi183Jul 5, 2025
    CivitAI

    It's not working... what should I download for compatible low vram??

    somethingineednsf788Jul 11, 2025· 2 reactions
    CivitAI

    Might be a stupid question, but I am so confused over step 4. Everything else works, but I struggle to complete step 4. Can anyone give me some tips? and what exactly should I do?

    Workflows
    Wan Video

    Details

    Downloads
    4,274
    Platform
    CivitAI
    Platform Status
    Available
    Created
    4/17/2025
    Updated
    8/3/2026
    Deleted
    -

    Files

    wanEndlessFacials_v10.zip

    Mirrors

    HuggingFace (1 mirrors)
    CivitAI (1 mirrors)