CivArchive
    TemporalDiff Motion Module - v1.0
    NSFW
    Preview 2471441

    This model was created by CiaraRowles, posted to Civitai.com with permission. Basic Getting Started Tutorial available at the Civitai Education Hub!

    TemporalDiff is a finetune of the original AnimateDiff weights on a higher resolution dataset (512x512).

    Testing so far indicates a higher level of video coherency than the original weights, i also adjusted the stride from 4 to 2 frames to improve how smooth the motion was.

    Current limitations are that the labelling for my dataset was a bit off, so it has slightly reduced ability to interpret the prompt, i'll be releasing a new version that fixes that soon.

    This should work the same as any the base model in terms of use, just drag and drop it into comfy ui or the animatediff repository and use as normal.

    This does not require any additional memory to run as the generations were 512x512 before, the training was just done at 256x256.

    Description

    FAQ

    Comments (35)

    thesilvermothSep 12, 2023· 4 reactions
    CivitAI

    Hello! Mind if I ask for a link of a tutorial or post about the usage of this extension? It looks very interesting and I would love to try it!

    theally
    Author
    Sep 12, 2023· 5 reactions

    I will definitely put something together! Keep an eye on education.civitai.com!

    thesilvermothSep 12, 2023

    @theally thanks so much!

    theally
    Author
    Sep 14, 2023· 4 reactions
    thesilvermothSep 14, 2023· 1 reaction

    @theally yeeeeees! Thanks a lot!!

    LVNDSCAPESep 12, 2023
    CivitAI

    A tutorial for your model upload is missing.

    What do you mean with

    "This should work the same as any the base model in terms of use, just drag and drop it into comfy ui or the animatediff repository and use as normal."

    What is "normal" here? ;)

    - How to prompt?

    - What can be animated?

    - How to animate a sequence?

    - What do people have to care about to receive good results.

    theally
    Author
    Sep 12, 2023

    The text is lifted directly from Ciara's HuggingFace - i'm not the author here. You'll have to do a little digging, or wait for me to get a tutorial up on education.civitai.com :)

    StrawberriesSep 13, 2023· 3 reactions

    heya, dev here, look into the various methods of using animate diff between their repo, the automatic extension or comfy, in these they give you the option of using v14 or v15 or v15v2 models, you can just drop temporaldiff into the models folder next to these other models and you'll be able to select it same as the others.

    the prompting should be pretty much the same although i haven't tested it extensively to give full recommendations, the main thing is it was trained on a youtube dataset over a shutterstock dataset so expect motion to skew more towards youtube videos than stock footage.

    LVNDSCAPESep 14, 2023

    @Strawberries Hi thx for the hints :)

    LVNDSCAPESep 14, 2023· 1 reaction

    @theally Thx a million for lifting the usage secrets creating a beauty guide :)

    dogma4000Oct 1, 2023

    @theally The extension doesn't load for me :(
    I followed the Beginner's Guide for installing this locally on Automatic1111. But Im stuck at the step where you're supposed to open AnimateDiff in the accordion on the left. The problem is that it doesn't even show up on the left...

    theally
    Author
    Oct 1, 2023

    @dogma4000 When you load Automatic1111 do you see any errors in the console window relating to AnimateDiff? When you go to the Extensions tab, do you see that AnimateDiff is installed and up to date?

    sistemas947Sep 13, 2023
    CivitAI

    Hola,

    ¿algún tutorial?

    theally
    Author
    Sep 13, 2023· 1 reaction

    Hola! ¡Aún no! Pero pronto publicaré en nuestro centro de Educación: education.civitai.com 😃

    StrugglingSorcerorSep 13, 2023· 1 reaction
    CivitAI

    I think these are the comfyUI and A1111 integrations this model is used with:

    https://github.com/ArtVentureX/comfyui-animatediff

    https://github.com/continue-revolution/sd-webui-animatediff

    (Haven’t yet used it myself.)

    bigTiddyLoverSep 15, 2023
    CivitAI

    Does it work with SDXL checkpoints?

    theally
    Author
    Sep 15, 2023· 4 reactions

    No, these ones don't, unfortunately. The injection of the motion modules only works with SD 1.5 based models currently!

    Miracle_TheorySep 22, 2023· 1 reaction
    CivitAI

    I always get two scenes even when under 75 tokens. Running on 8GB VRAM with xformers 512x512

    vivarevoSep 26, 2023

    pos/neg prompt needs to be same length

    ai_degenxSep 28, 2023· 3 reactions

    https://rentry.org/AnimAnon-AnimDiff

    Enable Pad prompt/negative prompt to be same length and Batch cond/uncond and click Apply settings in Settings. You must do this to prevent generating two separate unrelated GIFs.

    ShabintoiNov 10, 2023

    try under 32

    nonozone222653Sep 23, 2023· 4 reactions
    CivitAI

    doesn't work for me I followed every step in the tutorial. It starts generation but the end result is always just random colors using toonyou_bet3 as model and the temporaldiffmotion as animediff model

    ericwagner101Sep 25, 2023

    I have the same problem.

    cutie_spankingNov 2, 2023

    Did you tried on ComfyUI or Automatic1111 ?

    nonozone222653Nov 3, 2023· 1 reaction

    its Automatic1111 but i managed to fix it and it works now

    stableghostDec 26, 2023· 1 reaction

    @nonozone222653 how

    lucidzachary473Mar 11, 2024

    @nonozone222653 What was your fix? :)

    nonozone222653Mar 28, 2024

    basically, you need to restart the UI and try to use only 512x512 at first without any high res fixes and fewer prompts that is how I fixed it

    GlowstikMay 13, 2025

    if all else fails, try using RealisticVision or something made for animation, idk what toonyou_bet3 is, but if it's not meant for motion it won't work

    brxkirk245Dec 21, 2023· 1 reaction
    CivitAI

    Even now that the V3 motion model is out, I still find that this works best for my vid2vid generations. I don't really do txt2vid so I can't comment on that.

    So, any chance you can be convinced to do a similar finetune for V3? Maybe it's something you could teach others how to do?

    1240077173121Mar 2, 2024
    CivitAI

    Where was he installed

    izjedi570Mar 5, 2024
    CivitAI

    Guys, can you please tell which Checkpoints and VAEs and maybe negative prompts work better with this model? ^_^

    GUS_C3Jun 22, 2024
    CivitAI

    Does not work with AnimateDiff extension in A1111

    *** Error completing request 3.03s/it] *** Arguments: ('task(1bymk1qh5mlbdd0)', <gradio.routes.Request object at 0x000001E87959F490>, 'female figure skater performing', '', [], 1, 1, 7, 512, 512, False, 0.7, 2, 'Latent', 0, 0, 0, 'Use same checkpoint', 'Use same sampler', 'Use same scheduler', '', '', [], 0, 20, 'DPM++ 2M', 'Automatic', False, '', 0.8, -1, False, -1, 0, 0, 0, 0, False, 1, False, 1, 1, 30, 1, 0, -4, 1, 0.4, 0.5, 2, False, '[How to set parameters? Check our github!](https://github.com/scraed/CharacteristicGuidanceWebUI/tree/main)', 'More ControlNet', 0, 1, True, False, 1, False, False, False, 1.1, 1.5, 100, 0.7, False, False, True, False, False, 0, 'Gustavosta/MagicPrompt-Stable-Diffusion', '', <scripts.animatediff_ui.AnimateDiffProcess object at 0x000001E8799D9DE0>, False, 0.6, 0.9, 0.25, 1, True, False, ControlNetUnit(is_ui=True, input_mode=<InputMode.SIMPLE: 'simple'>, batch_images='', output_dir='', loopback=False, enabled=False, module='none', model='mm_sd15_v3_sparsectrl_rgb [9f17d62f]', weight=1.0, image={'image': array([[[ 76, 33, 113], *** [ 75, 32, 118], *** [ 75, 31, 114], *** ..., *** [ 42, 18, 94], *** [ 43, 18, 92], *** [ 41, 19, 92]], *** *** [[ 81, 33, 114], *** [ 80, 32, 119], *** [ 76, 29, 115], *** ..., *** [ 41, 17, 94], *** [ 42, 18, 93], *** [ 45, 18, 95]], *** *** [[ 79, 27, 115], *** [ 78, 30, 118], *** [ 74, 29, 115], *** ..., *** [ 41, 17, 93], *** [ 41, 18, 93], *** [ 45, 18, 94]], *** *** ..., *** *** [[212, 216, 224], *** [215, 219, 225], *** [221, 225, 232], *** ..., *** [172, 172, 182], *** [171, 169, 180], *** [178, 175, 187]], *** *** [[223, 228, 235], *** [219, 223, 230], *** [216, 219, 227], *** ..., *** [171, 170, 180], *** [176, 176, 185], *** [178, 176, 187]], *** *** [[217, 223, 227], *** [219, 221, 230], *** [222, 223, 230], *** ..., *** [172, 171, 180], *** [175, 173, 181], *** [181, 180, 188]]], dtype=uint8), 'mask': array([[[0, 0, 0], *** [0, 0, 0], *** [0, 0, 0], *** ..., *** [0, 0, 0], *** [0, 0, 0], *** [0, 0, 0]], *** *** [[0, 0, 0], *** [0, 0, 0], *** [0, 0, 0], *** ..., *** [0, 0, 0], *** [0, 0, 0], *** [0, 0, 0]], *** *** [[0, 0, 0], *** [0, 0, 0], *** [0, 0, 0], *** ..., *** [0, 0, 0], *** [0, 0, 0], *** [0, 0, 0]], *** *** ..., *** *** [[0, 0, 0], *** [0, 0, 0], *** [0, 0, 0], *** ..., *** [0, 0, 0], *** [0, 0, 0], *** [0, 0, 0]], *** *** [[0, 0, 0], *** [0, 0, 0], *** [0, 0, 0], *** ..., *** [0, 0, 0], *** [0, 0, 0], *** [0, 0, 0]], *** *** [[0, 0, 0], *** [0, 0, 0], *** [0, 0, 0], *** ..., *** [0, 0, 0], *** [0, 0, 0], *** [0, 0, 0]]], dtype=uint8)}, resize_mode=<ResizeMode.INNER_FIT: 'Crop and Resize'>, low_vram=False, processor_res=512, threshold_a=0.5, threshold_b=0.5, guidance_start=0.0, guidance_end=1.0, pixel_perfect=True, control_mode=<ControlMode.BALANCED: 'Balanced'>, inpaint_crop_input_image=False, hr_option=<HiResFixOption.BOTH: 'Both'>, save_detected_map=True, advanced_weighting=None, effective_region_mask=None, pulid_mode=<PuLIDMode.FIDELITY: 'Fidelity'>, ipadapter_input=None, mask=None, batch_mask_dir=None, animatediff_batch=False, batch_modifiers=[], batch_image_files=[], batch_keyframe_idx=None), ControlNetUnit(is_ui=True, input_mode=<InputMode.SIMPLE: 'simple'>, batch_images='', output_dir='', loopback=False, enabled=False, module='none', model='None', weight=1.0, image=None, resize_mode=<ResizeMode.INNER_FIT: 'Crop and Resize'>, low_vram=False, processor_res=-1, threshold_a=-1.0, threshold_b=-1.0, guidance_start=0.0, guidance_end=1.0, pixel_perfect=False, control_mode=<ControlMode.BALANCED: 'Balanced'>, inpaint_crop_input_image=False, hr_option=<HiResFixOption.BOTH: 'Both'>, save_detected_map=True, advanced_weighting=None, effective_region_mask=None, pulid_mode=<PuLIDMode.FIDELITY: 'Fidelity'>, ipadapter_input=None, mask=None, batch_mask_dir=None, animatediff_batch=False, batch_modifiers=[], batch_image_files=[], batch_keyframe_idx=None), ControlNetUnit(is_ui=True, input_mode=<InputMode.SIMPLE: 'simple'>, batch_images='', output_dir='', loopback=False, enabled=False, module='none', model='None', weight=1.0, image=None, resize_mode=<ResizeMode.INNER_FIT: 'Crop and Resize'>, low_vram=False, processor_res=-1, threshold_a=-1.0, threshold_b=-1.0, guidance_start=0.0, guidance_end=1.0, pixel_perfect=False, control_mode=<ControlMode.BALANCED: 'Balanced'>, inpaint_crop_input_image=False, hr_option=<HiResFixOption.BOTH: 'Both'>, save_detected_map=True, advanced_weighting=None, effective_region_mask=None, pulid_mode=<PuLIDMode.FIDELITY: 'Fidelity'>, ipadapter_input=None, mask=None, batch_mask_dir=None, animatediff_batch=False, batch_modifiers=[], batch_image_files=[], batch_keyframe_idx=None), False, 0, 1, 0, 'Version 2', 1.5, 0.9, 0, 0.5, 0, 1, 1.6, 0.2, 0, 0.5, 0, 1, 1, 1, 0, 0.5, 0, 1, False, 1, 0.8, 3, 0, 0, 150, 4, False, 0, 0, 150, False, 'Constant', 0, 100, False, False, False, 2, 0.1, 0.5, 0, '', 0, 25, 1, False, False, False, 'BREAK', '-', 0.2, 10, False, False, 0, None, [], 0, False, [], [], False, 0, 1, False, False, 0, None, [], -2, False, [], False, 0, None, None, False, '0', False, False, 'positive', 'comma', 0, False, False, 'start', '', 1, '', [], 0, '', [], 0, '', [], True, False, False, False, False, False, False, 0, False, 5, 'all', 'all', 'all', '', '', '', '1', 'none', False, '', '', 'comma', '', True, '', '20', 'all', 'all', 'all', 'all', 0, '', True, '0', False, 'SDXL', 'Standard', 'dynamic', 'none', '', '', None, None, False, None, None, False, None, None, False, 50, 'Long prompt to short prompt', '', 0, 8, 1000, 0, False, '0.1', '0.1', '1', '1', None, None, None, None, None, None, None, None, None) {} Traceback (most recent call last): File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\einops\einops.py", line 410, in reduce return _apply_recipe(recipe, tensor, reduction_type=reduction) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\einops\einops.py", line 233, in _apply_recipe _reconstruct_from_shape(recipe, backend.shape(tensor)) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\einops\einops.py", line 198, in _reconstruct_from_shape_uncached raise EinopsError("Shape mismatch, can't divide axis of length {} in chunks of {}".format( einops.EinopsError: Shape mismatch, can't divide axis of length 1 in chunks of 2 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\AI\stable-diffusion-webui\modules\call_queue.py", line 57, in f res = list(func(*args, **kwargs)) File "D:\AI\stable-diffusion-webui\modules\call_queue.py", line 36, in f res = func(*args, **kwargs) File "D:\AI\stable-diffusion-webui\modules\txt2img.py", line 109, in txt2img processed = processing.process_images(p) File "D:\AI\stable-diffusion-webui\modules\processing.py", line 839, in process_images res = process_images_inner(p) File "D:\AI\stable-diffusion-webui\extensions\sd-webui-controlnet\scripts\batch_hijack.py", line 48, in processing_process_images_hijack return getattr(processing, '__controlnet_original_process_images_inner')(p, *args, **kwargs) File "D:\AI\stable-diffusion-webui\modules\processing.py", line 987, in process_images_inner x_samples_ddim = decode_latent_batch(p.sd_model, samples_ddim, target_device=devices.cpu, check_for_nans=True) File "D:\AI\stable-diffusion-webui\modules\processing.py", line 627, in decode_latent_batch sample = decode_first_stage(model, batch[i:i + 1])[0] File "D:\AI\stable-diffusion-webui\modules\sd_samplers_common.py", line 76, in decode_first_stage return samples_to_images_tensor(x, approx_index, model) File "D:\AI\stable-diffusion-webui\modules\sd_samplers_common.py", line 58, in samples_to_images_tensor x_sample = model.decode_first_stage(sample.to(model.first_stage_model.dtype)) File "D:\AI\stable-diffusion-webui\modules\sd_hijack_utils.py", line 22, in <lambda> setattr(resolved_obj, func_path[-1], lambda *args, **kwargs: self(*args, **kwargs)) File "D:\AI\stable-diffusion-webui\modules\sd_hijack_utils.py", line 36, in __call__ return self.__orig_func(*args, **kwargs) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\utils\_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) File "D:\AI\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\diffusion\ddpm.py", line 826, in decode_first_stage return self.first_stage_model.decode(z) File "D:\AI\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\models\autoencoder.py", line 90, in decode dec = self.decoder(z) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "D:\AI\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\model.py", line 630, in forward h = self.mid.block_1(h, temb) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "D:\AI\stable-diffusion-webui\repositories\stable-diffusion-stability-ai\ldm\modules\diffusionmodules\model.py", line 131, in forward h = self.norm1(h) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1518, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\torch\nn\modules\module.py", line 1527, in _call_impl return forward_call(*args, **kwargs) File "D:\AI\stable-diffusion-webui\extensions\sd-webui-animatediff\scripts\animatediff_mm.py", line 86, in groupnorm32_mm_forward x = rearrange(x, "(b f) c h w -> b c f h w", b=2) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\einops\einops.py", line 487, in rearrange return reduce(tensor, pattern, reduction='rearrange', **axes_lengths) File "D:\AI\stable-diffusion-webui\venv\lib\site-packages\einops\einops.py", line 418, in reduce raise EinopsError(message + '\n {}'.format(e)) einops.EinopsError: Error while processing rearrange-reduction pattern "(b f) c h w -> b c f h w". Input tensor shape: torch.Size([1, 512, 64, 64]). Additional info: {'b': 2}. Shape mismatch, can't divide axis of length 1 in chunks of 2