Skip to content

AttributeError: 'str' object has no attribute 'convert' when training controlnetย #6858

@XiangjiBU

Description

@XiangjiBU

Describe the bug

when I training controlnet (by example/controlnet ), AttributeError: 'str' object has no attribute 'convert' appears

Reproduction

I use the same bash with example/controlnet/README.md

accelerate launch train_controlnet.py \
 --pretrained_model_name_or_path=$MODEL_DIR \
 --output_dir=$OUTPUT_DIR \
 --dataset_name=fusing/fill50k \
 --resolution=512 \
 --learning_rate=1e-5 \
 --validation_image "./conditioning_image_1.png" "./conditioning_image_2.png" \
 --validation_prompt "red circle with blue background" "cyan circle with brown floral background" \
 --train_batch_size=1 \
 --gradient_accumulation_steps=4 

I download fill50K dataset and put it in example/controlnet. The folder like this:

example/controlnet:
  -- train_controlnet.py
  -- conditioning_image_1.png
  -- conditioning_image_2.png
  -- fusing/fill50k
        -- train.jsonl
        -- conditioning_images
                -- 0.png
                -- 1.png
                    ......
          -- images
                -- 0.png
                -- 1.png
                    ......

Logs

Downloading data files: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:00<00:00, 11066.77it/s]
Extracting data files: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:00<00:00, 1844.46it/s]
Generating train split: 50000 examples [00:00, 1874549.27 examples/s]
02/05/2024 20:05:51 - INFO - __main__ - ***** Running training *****
02/05/2024 20:05:51 - INFO - __main__ -   Num examples = 50000
02/05/2024 20:05:51 - INFO - __main__ -   Num batches each epoch = 50000
02/05/2024 20:05:51 - INFO - __main__ -   Num Epochs = 1
02/05/2024 20:05:51 - INFO - __main__ -   Instantaneous batch size per device = 1
02/05/2024 20:05:51 - INFO - __main__ -   Total train batch size (w. parallel, distributed & accumulation) = 4
02/05/2024 20:05:51 - INFO - __main__ -   Gradient Accumulation steps = 4
02/05/2024 20:05:51 - INFO - __main__ -   Total optimization steps = 12500
Steps:   0%|                                                                                    | 0/12500 [00:00<?, ?it/s]Traceback (most recent call last):
  File "/mnt/sdb/ๆ•ฐๆฎ2/diffusers/examples/controlnet/train_controlnet.py", line 1142, in <module>
    main(args)
  File "/mnt/sdb/ๆ•ฐๆฎ2/diffusers/examples/controlnet/train_controlnet.py", line 1007, in main
    for step, batch in enumerate(train_dataloader):
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/accelerate/data_loader.py", line 384, in __iter__
    current_batch = next(dataloader_iter)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 633, in __next__
    data = self._next_data()
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 677, in _next_data
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
    data = self.dataset.__getitems__(possibly_batched_index)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2799, in __getitems__
    batch = self.__getitem__(keys)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2795, in __getitem__
    return self._getitem(key)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/datasets/arrow_dataset.py", line 2780, in _getitem
    formatted_output = format_table(
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/datasets/formatting/formatting.py", line 629, in format_table
    return formatter(pa_table, query_type=query_type)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/datasets/formatting/formatting.py", line 400, in __call__
    return self.format_batch(pa_table)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/datasets/formatting/formatting.py", line 515, in format_batch
    return self.transform(batch)
  File "/mnt/sdb/diffusers/examples/controlnet/train_controlnet.py", line 681, in preprocess_train
    images = [image.convert("RGB") for image in examples[image_column]]
  File "/mnt/sdb/diffusers/examples/controlnet/train_controlnet.py", line 681, in <listcomp>
    images = [image.convert("RGB") for image in examples[image_column]]
AttributeError: 'str' object has no attribute 'convert'
Steps:   0%|                                                                                    | 0/12500 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/home/ps/anaconda3/envs/diffusers/bin/accelerate", line 8, in <module>
    sys.exit(main())
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/accelerate/commands/accelerate_cli.py", line 47, in main
    args.func(args)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/accelerate/commands/launch.py", line 986, in launch_command
    simple_launcher(args)
  File "/home/ps/anaconda3/envs/diffusers/lib/python3.10/site-packages/accelerate/commands/launch.py", line 628, in simple_launcher
    raise subprocess.CalledProcessError(returncode=process.returncode, cmd=cmd)
subprocess.CalledProcessError: Command '['/home/ps/anaconda3/envs/diffusers/bin/python3.10', 'train_controlnet.py', '--pretrained_model_name_or_path=/home/ps/train_sd_code/diffusers/runwayml/stable-diffusion-v1-5', '--output_dir=./output_test1', '--dataset_name=fusing/fill50k', '--resolution=512', '--learning_rate=1e-5', '--validation_image', './conditioning_image_1.png', './conditioning_image_2.png', '--validation_prompt', 'red circle with blue background', 'cyan circle with brown floral background', '--train_batch_size=1', '--gradient_accumulation_steps=4']' returned non-zero exit status 1.

System Info

I tried diffusers-0.25.0.dev0 and diffusers-0.26.0.dev0, but both have the same problem

Who can help?

@sayakpaul @yiyixuxu @DN6 @patrickvonplaten

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