Repository: stable-diffusion-webui
Issue: [Bug]: System tries to apply [batch_number] and [generation_number] to grid names resulting in unhandled error: 'object has no attribute'
Labels: bug-report

### Is there an existing issue for this?

- [X] I have searched the existing issues and checked the recent builds/commits

### What happened?

When using X/Y/Z Plot script system is unable to save the grids if the Images filename pattern includes [batch_number] and/or [generation_number]. 
My guess is that the script is calling FilenameGenerator for the grid files like it is an image file. However, the object for the grips doe not have batches.

```
Error adding [batch_number] to filename
Traceback (most recent call last):
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 446, in apply
    replacement = fun(self, *pattern_args)
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 357, in <lambda>
    'batch_number': lambda self: NOTHING_AND_SKIP_PREVIOUS_TEXT if self.p.batch_size == 1 else self.p.batch_index + 1,
AttributeError: 'MyObject' object has no attribute 'batch_index'

Error adding [generation_number] to filename
Traceback (most recent call last):
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 446, in apply
    replacement = fun(self, *pattern_args)
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 358, in <lambda>
    'generation_number': lambda self: NOTHING_AND_SKIP_PREVIOUS_TEXT if self.p.n_iter == 1 and self.p.batch_size == 1 else self.p.iteration * self.p.batch_size + self.p.batch_index + 1,
AttributeError: 'MyObject' object has no attribute 'n_iter'
```


### Steps to reproduce the problem

1. In settings, add [batch_number] and [generation_number] to Images filename pattern.
2. Activate "Always save all generated image grids"
3. In txt2img click Scrips and use X/Y/Z plot script. Create a 3 dimensions grid using any 3 variables. 
4. Set Batch Size>1 and Batch Count>1 (e.g. Btach Size=2 and Btach Count=2)
5. Generate images.
6. Observe the console errors and no grids being saved

### What should have happened?

A master grid should have been created, plus secondary grids (depending on the number of vars used).

### Commit where the problem happens

cc6cb27103417325ff94f52b7a5d2dde45a7515b25c255d8e396c90014281516

### What Python version are you running on ?

Python 3.10.x

### What platforms do you use to access the UI ?

Windows

### What device are you running WebUI on?

Nvidia GPUs (RTX 20 above)

### What browsers do you use to access the UI ?

Mozilla Firefox

### Command Line Arguments

```Shell
No
```


### List of extensions

No

### Console logs

```Shell
X/Y/Z plot will create 72 images on 3 2x2 grids; 6 images per cell. (Total steps to process: 180)
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.23it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.30it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.30it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.28it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.04it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.26it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.25it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.23it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.23it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.22it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.20it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.18it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.21it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.21it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.20it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.19it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.18it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.18it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.17it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.16it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.18it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:01<00:00,  3.23it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.15it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:03<00:00,  3.19it/s]
Error adding [batch_number] to filename
Traceback (most recent call last):
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 446, in apply
    replacement = fun(self, *pattern_args)
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 357, in <lambda>
    'batch_number': lambda self: NOTHING_AND_SKIP_PREVIOUS_TEXT if self.p.batch_size == 1 else self.p.batch_index + 1,
AttributeError: 'MyObject' object has no attribute 'batch_index'

Error adding [generation_number] to filename
Traceback (most recent call last):
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 446, in apply
    replacement = fun(self, *pattern_args)
  File "W:\Stable_Difusion\stable-diffusion-webui\modules\images.py", line 358, in <lambda>
    'generation_number': lambda self: NOTHING_AND_SKIP_PREVIOUS_TEXT if self.p.n_iter == 1 and self.p.batch_size == 1 else self.p.iteration * self.p.batch_size + self.p.batch_index + 1,
AttributeError: 'MyObject' object has no attribute 'n_iter'
```


### Additional information

_No response_