Skip to content

FLUX train controlnet failed: embedding tensor size not match #9857

@yapengyu

Description

@yapengyu

Describe the bug

trying to train flux controlnet, reference to 'train_controlnet_flux.py' and 'readme_flux.txt'

Reproduction

use the dataset 'fusing/fill50k', and the parameters mentioned in 'readme_flux.txt'

Logs

Traceback (most recent call last):
  File "/path_to_conda/projects/face-workspace-ai-vision-face/diffusion/15.HandPose/train_controlnet/train_controlnet_flux.py", line 1452, in <module>
    main(args)
  File "/path_to_conda/projects/face-workspace-ai-vision-face/diffusion/15.HandPose/train_controlnet/train_controlnet_flux.py", line 1310, in main
    controlnet_block_samples, controlnet_single_block_samples = flux_controlnet(
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/accelerate/utils/operations.py", line 820, in forward
    return model_forward(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/accelerate/utils/operations.py", line 808, in __call__
    return convert_to_fp32(self.model_forward(*args, **kwargs))
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/amp/autocast_mode.py", line 16, in decorate_autocast
    return func(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/diffusers/models/controlnet_flux.py", line 354, in forward
    encoder_hidden_states, hidden_states = block(
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/diffusers/models/transformers/transformer_flux.py", line 175, in forward
    attn_output, context_attn_output = self.attn(
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/diffusers/models/attention_processor.py", line 495, in forward
    return self.processor(
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/diffusers/models/attention_processor.py", line 1778, in __call__
    query = apply_rotary_emb(query, image_rotary_emb)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/diffusers/models/embeddings.py", line 734, in apply_rotary_emb
    out = (x.float() * cos + x_rotated.float() * sin).to(x.dtype)
RuntimeError: The size of tensor a (1536) must match the size of tensor b (768) at non-singleton dimension 2
Steps:   0%|                                                                                | 0/15000 [00:05<?, ?it/s]
Traceback (most recent call last):
  File "/path_to_conda/anaconda3/envs/diffusers-newest/bin/accelerate", line 8, in <module>
    sys.exit(main())
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/accelerate/commands/accelerate_cli.py", line 48, in main
    args.func(args)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/accelerate/commands/launch.py", line 1168, in launch_command
    simple_launcher(args)
  File "/path_to_conda/anaconda3/envs/diffusers-newest/lib/python3.9/site-packages/accelerate/commands/launch.py", line 763, in simple_launcher
    raise subprocess.CalledProcessError(returncode=process.returncode, cmd=cmd)

System Info

  • diffusers 0.31.0
  • accelerate 1.0.1
  • transformers 4.46.1
  • torch 2.1.2+cu118
  • torchvision 0.16.2+cu118

Who can help?

@ScilenceForest @sayakpaul

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions