huggingface / huggingface/diffusers
IndexError: index 29 is out of bounds for dimension 0 with size 29
- Langage dominant
- Python
- Étoiles
- 34.5k
- Forks
- 7.3k
- Merge moyen
- 3 j 3 h
- PR mergées (30 j)
- 91
Description
### Describe the bug
I have three problems because of the same reason.
1) TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int'
# upon completion increase step index by one
self._step_index += 1 <---Error [here](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L303)
2) IndexError: index 29 is out of bounds for dimension 0 with size 29
sigma_next = self.sigmas[self.step_index + 1] <--- Error [here](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L295)
3) RuntimeError: Already borrowed
if _truncation is not None:
self._tokenizer.no_truncation() <--- Error here
Example: https://github.com/huggingface/tokenizers/issues/537
The reason, as I understood, is threads. Do you know, how can I solve this problem?
### Reproduction
```
from diffusers import (
FluxPipeline,
FlowMatchEulerDiscreteScheduler,
)
import torch
pipeline = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-schnell", torch_dtype=torch.bfloat16
).to("cuda")
seed = 42
height = 720
width = 1280
generator = torch.Generator(device="cuda").manual_seed(seed)
pipeline(
prompt=prompt + ", highly detailed, all is depicted as silhouettes, without words",
guidance_scale=0.,
# num_inference_steps=10,
height=height,
width=width,
generator=generator,
max_sequence_length=256,
).images[0]
```
### Logs
```shell
For example:
Traceback (most recent call last):
File "/opt/conda/lib/python3.10/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
File "/opt/conda/lib/python3.10/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/opt/conda/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/conda/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File "/app/main.py", line 29, in generate_image
image = imagegen.run(**data)
File "/app/image_generator.py", line 102, in run
return generate_image()
File "/app/image_generator.py", line 89, in generate_image
return self.pipeline(
File "/opt/conda/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "/opt/conda/lib/python3.10/site-packages/diffusers/pipelines/flux/pipeline_flux.py", line 734, in __call__
latents = self.scheduler.step(noise_pred, t, latents, return_dict=False)[0]
File "/opt/conda/lib/python3.10/site-packages/diffusers/schedulers/scheduling_flow_match_euler_discrete.py", line 295, in step
sigma_next = self.sigmas[self.step_index + 1]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
```
### System Info
- 🤗 Diffusers version: 0.31.0.dev0
- Platform: Linux-5.4.0-171-generic-x86_64-with-glibc2.35
- Running on Google Colab?: No
- Python version: 3.10.13
- PyTorch version (GPU?): 2.2.1 (True)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Huggingface_hub version: 0.24.6
- Transformers version: 4.44.2
- Accelerate version: 0.34.0
- PEFT version: 0.12.0
- Bitsandbytes version: not installed
- Safetensors version: 0.4.4
- xFormers version: not installed
- Accelerator: NVIDIA RTX A6000, 46068 MiB
- Using GPU in script?:
- Using distributed or parallel set-up in script?:
### Who can help?
@yiyixuxu @sayakpaul @DN6
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par reproduire le chemin Flask avec threads via image_generator.py et pipeline_flux.py, puis examinez scheduling_flow_match_euler_discrete.py autour des lignes 295-303 ainsi que le chemin de troncature du tokenizer. Comparez les trois échecs signalés en utilisation concurrente et suivez la manière dont l’état du scheduler et du tokenizer est partagé. Le travail est terminé lorsque la reproduction fournie ne lève plus ces erreurs lorsque les requêtes sont exécutées simultanément.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python, pytorch
- Domaine
- backend, machine-learning
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100