> ## Documentation Index
> This page is part of the Image and Video APIs product. Fetch the complete documentation index for Image and Video APIs at: https://cloudinary.com/documentation/llms-image-and-video-apis.txt?referrer=docpage and then use it to discover all relevant pages before exploring further.
> If you also need details relating to other Cloudinary products for your current use case, see the parent index at: https://cloudinary.com/documentation/llms.txt?referrer=docpage

# Edits at scale (video tutorial)

## Overview

Need to apply the same edits to hundreds of images at once? This tutorial shows how to create a reusable named transformation in the Cloudinary Media Library, then reuse it across any asset with no coding required.

Once saved, you can apply the transformation on the fly by adding its name to any Cloudinary delivery URL. Learn more in the [named transformations](named_transformations) guide.

## Video tutorial

  This video is brought to you by Cloudinary's video player - embed your own!Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.
{videoTranscript:publicId=training/Transformations_e2cedp}

## Tutorial contents
This tutorial presents the following topics. Click a timestamp to jump to that part of the video.### Introduction
{table:class=tutorial-bullets}|  |
| --- | --- |
| | Want to transform hundreds of images in Cloudinary all at once? Here's the fastest way, with no coding needed. |

### Create a reusable transformation
{table:class=tutorial-bullets}|  |
| --- | --- |
| | Go into the Media Library, select any asset, and click edit to open [Studio](dam_editing_and_transformations#studio). Here you can apply whatever settings you want, for example, resize, crop, filters, borders, and more. |

### Apply AI-powered edits
{table:class=tutorial-bullets}|  |
| --- | --- |
| | Use AI to remove an object that appears across all your images, pad with a [generative fill](generative_ai_transformations), and apply a logo. |

### Save as a named transformation
{table:class=tutorial-bullets}|  |
| --- | --- |
| | To save this set of changes as a [named transformation](named_transformations), click **Save Template** and give it a name. Your edits are now ready to apply across any images. |

### Apply across all your assets
{table:class=tutorial-bullets}|  |
| --- | --- |
| | Bring in more assets and see the same transformation applied across them all. You can save or download the results, but it's not necessary. |

### Deliver variations on the fly
{table:class=tutorial-bullets}|  |
| --- | --- |
| | Create these variations on the fly by simply adding the [transformation name](transformation_reference#t_named_transformation) to any of your Cloudinary image delivery URLs, wherever you use them. |

For example, apply the `vignette_angle` named transformation to the image (`t_vignette_angle`). The underlying transformation is `e_vignette:90/a_45`:

![Hot air balloons with vignette and angled](https://res.cloudinary.com/demo/image/upload/t_vignette_angle/docs/hot-air-balloons.jpg "thumb: h_150")

```nodejs
cloudinary.image("docs/hot-air-balloons.jpg", {transformation: ["vignette_angle"]})
```

```react
import { name } from "@cloudinary/url-gen/actions/namedTransformation";

new CloudinaryImage("docs/hot-air-balloons.jpg").namedTransformation(
  name("vignette_angle")
);
```

```vue
import { name } from "@cloudinary/url-gen/actions/namedTransformation";

new CloudinaryImage("docs/hot-air-balloons.jpg").namedTransformation(
  name("vignette_angle")
);
```

```angular
import { name } from "@cloudinary/url-gen/actions/namedTransformation";

new CloudinaryImage("docs/hot-air-balloons.jpg").namedTransformation(
  name("vignette_angle")
);
```

```js
import { name } from "@cloudinary/url-gen/actions/namedTransformation";

new CloudinaryImage("docs/hot-air-balloons.jpg").namedTransformation(
  name("vignette_angle")
);
```

```python
CloudinaryImage("docs/hot-air-balloons.jpg").image(transformation=["vignette_angle"])
```

```php
use Cloudinary\Transformation\NamedTransformation;

(new ImageTag('docs/hot-air-balloons.jpg'))
	->namedTransformation(NamedTransformation::name("vignette_angle"));
```

```java
cloudinary.url().transformation(new Transformation().named("vignette_angle")).imageTag("docs/hot-air-balloons.jpg");
```

```ruby
cl_image_tag("docs/hot-air-balloons.jpg", transformation: ["vignette_angle"])
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Named("vignette_angle")).BuildImageTag("docs/hot-air-balloons.jpg")
```

```dart
cloudinary.image('docs/hot-air-balloons.jpg').transformation(Transformation()
	.namedTransformation(NamedTransformation.name("vignette_angle")));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setNamed("vignette_angle")).generate("docs/hot-air-balloons.jpg")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().named("vignette_angle")).generate("docs/hot-air-balloons.jpg");
```

```flutter
cloudinary.image('docs/hot-air-balloons.jpg').transformation(Transformation()
	.namedTransformation(NamedTransformation.name("vignette_angle")));
```

```kotlin
cloudinary.image {
	publicId("docs/hot-air-balloons.jpg")
	 namedTransformation(NamedTransformation.name("vignette_angle")) 
}.generate()
```

```jquery
$.cloudinary.image("docs/hot-air-balloons.jpg", {transformation: ["vignette_angle"]})
```

```react_native
import { name } from "@cloudinary/url-gen/actions/namedTransformation";

new CloudinaryImage("docs/hot-air-balloons.jpg").namedTransformation(
  name("vignette_angle")
);
```
## Keep learning

> **READING**:
>
> * Discover how to save and reuse edits with [named transformations](named_transformations).

> * Browse the full set of transformations in the [Transformation URL API reference](transformation_reference).

> * Explore point-and-click editing using [Studio](dam_editing_and_transformations#studio).

> * Learn about AI-powered edits with [generative AI transformations](generative_ai_transformations).

#### If you like this, you might also like...

[Transformation Basics](transformation_basics_tutorial)

Learn the basics of a transformation URL

[Remove Backgrounds](background_removal_tutorial)

Erase any image background with one URL parameter

[Optimize Images](image_optimization_basics_tutorial)

Deliver faster images with q_auto and f_auto

&nbsp;

&nbsp;Check out the Cloudinary Academy for free self-paced Cloudinary courses on a variety of developer or DAM topics, or register for formal instructor-led courses, either virtual or on-site.
&nbsp;