- Get Started
- Image & Video APIs overview
- Developer kickstart
- SDK quick starts
- Try it!
- MCP servers and LLM tools (Beta)
- VS Code Extension (Beta)
- Video tutorial library
- Programmatic asset management
- Programmatic upload
- Upload programmatically
- Create upload presets
- Auto upload
- Moderate images with AI
- Use AI to generate image captions
- Upload images in Flutter
- Upload images in Node.js
- Auto-tag images in Node.js
- Upload multiple files in Node.js
- Upload videos in Node.js
- Upload images in Python
- Auto-tag images in Python
- Upload videos in Python
- Upload images in PHP
- Upload images in Go
- Upload assets in a React app
- Upload assets in a Vue.js app
- Drag-and-drop uploads in React
- Upload assets in a Next.js app
- Upload assets with Server Actions
- Upload assets in Svelte
- Upload assets in a SvelteKit app
- Upload assets in a Remix app
- Upload images in Hono
- Use webhooks to remove backgrounds
- Upload images in Laravel
- Interaction with Cloudinary APIs
- Cloudinary SDKs
- Find your credentials
- Configure the JavaScript SDK
- Configure the React SDK
- Configure the Angular SDK
- Configure the Flutter SDK
- Configure Svelte Cloudinary
- Configure the Javascript SDK in Svelte
- Getting started with Cloudinary in Node.js
- Configure the Node.js SDK
- Configure the Python SDK
- Configure the PHP SDK
- Configure the Go SDK
- Configure the Vue.js SDK
- Configure the Next.js SDK
- List images in Next.js
- Lazy load images with Next.js
- Image fallbacks in JavaScript
- Captioning on upload with Node.js
- Delete assets with Node.js
- Manage images in a Django app
- Cloudinary CLI
- Widgets and tools
- Programmatic upload
- Optimization and delivery
- Transformations
- Get started with transformations
- Advanced transformation features
- Text overlay transformations
- Complex transformations
- Named transformations
- Named transformations using TX Builder
- Advanced image components
- Trim videos in Node.js
- Splice videos in Node.js
- Zoompan effect
- Video transformations
- Crop and resize images in React
- Crop and resize videos in React
- Crop and resize images in Python
- Remove backgrounds and add drop shadows
- AI generative fill in Next.js
- Color accessibility in JavaScript
- Transformations for social media
- Dev Hints on YouTube
- Dev Hints en Español
- Cloudinary Café Training Sessions
- Programmatic asset management
- Additional onboarding resources
- Guides
- Cloudinary Image
- Product overview
- Image transformations
- Image transformations overview
- Resizing and cropping
- Placing layers on images
- Effects and enhancements
- Background removal
- Generative AI transformations
- Face-detection based transformations
- Custom focus areas
- Transformation refiners
- Animated images
- Transformations on 3D models
- Conditional transformations
- User-defined variables and arithmetic transformations
- Custom functions
- Image optimization and delivery
- Programmatic image creation
- Product Gallery widget
- Media Editor widget
- Image add-ons
- Cloudinary Video
- Upload
- Asset management
- Account management
- Retail and e-commerce
- User-generated content
- Accessible media
- AI in action
- Native mobile
- Add-ons
- Advanced Facial Attributes Detection
- Amazon Rekognition AI Moderation
- Amazon Rekognition Video Moderation
- Amazon Rekognition Auto Tagging
- Amazon Rekognition Celebrity Detection
- Aspose Document Conversion
- Cloudinary AI Background Removal
- Cloudinary AI Content Analysis
- Cloudinary AI Vision
- Cloudinary Duplicate Image Detection
- Google AI Video Moderation
- Google AI Video Transcription
- Google Auto Tagging
- Google Automatic Video Tagging
- Google Translation
- Imagga Auto Tagging
- Imagga Crop and Scale
- Perception Point Malware Detection
- Microsoft Azure Video Indexer
- OCR Text Detection and Extraction
- Pixelz - Remove the Background
- URL2PNG Website Screenshots
- VIESUSTM Automatic Image Enhancement
- WebPurify Image Moderation
- Cloudinary Image
- References
- SDKs
- Release Notes
Named transformations (video tutorial)
Last updated: Nov-24-2025
Overview
Named transformations are one of the most useful aspects of Cloudinary's service, allowing you to take one or more transformations you have created for your images and/or videos and develop a codename for them.
In this tutorial, you'll gain an overview of what transformations and named transformations are used for in Cloudinary's APIs. Then you'll learn how to programmatically create and apply Cloudinary's named transformations to assets. Finally, you'll go a step further, optimizing your assets by utilizing Cloudinary's automatic format (f_auto) and quality (q_auto) features.
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.
Tutorial contents
This tutorial presents the following topics. Click a timestamp to jump to that part of the video.
What is a transformation?
| Jump to this spot in the video 0:06 | A transformation is essentially one or more instructions that tell Cloudinary how to change the properties of a media asset. Cloudinary transformations are displayed as abbreviated parameters directly in the URL that accesses the media. |
What is a named transformation?
| Jump to this spot in the video 0:31 | Named transformations allow you to take one or more transformations, and group them under a unique custom name. Learn more in the named transformation documentation for images or video. |
Example of a named transformation in the wild
| Jump to this spot in the video 0:38 | The first example exposes all of the parameters within the URL. The second example keeps your set of transformations concealed within a single named transformation. |
Use cases for named transformations
| Jump to this spot in the video 0:51 | Named transformations help with security, reusability, and reducing human error. When we add many transformations, the URL can get quite lengthy, and all transformations applied are visible in the URL structure. Creating a named transformation will conveniently condense all the transformation parameters into one item in the URL structure, hiding your transformation parameters. |
Clone this repository to follow along
| Jump to this spot in the video 1:02 | It may be helpful to clone the repository we've created and will be using for this demonstration. |
Setting up your development environment
| Jump to this spot in the video 1:06 | If this is your first time setting up your development environment with Cloudinary, we recommend watching our Upload Programmatically tutorial. It will also walk you through how to make your first upload. |
Ensure script libraries are installed
| Jump to this spot in the video 1:15 | Make sure all of our script's libraries are properly installed with a simple npm i command. If you open your package.json file, you can see all of the packages have been listed as dependencies. |
Create a basic named transformation
| Jump to this spot in the video 1:57 | We're using the Node.js SDK create_transformation function to POST to the Admin API's transformations endpoint, and we're passing it our own unique name - in this example, avatar-round. |
Run script to create named transformation
| Jump to this spot in the video 2:44 | Run node create-named-transformation.js to officially create our first named transformation! |
Apply named transformation to three assets
| Jump to this spot in the video 2:49 | Now we will apply the named transformation we just created (avatar-round) to three images in our Cloudinary Media Library (public IDs: person1, person2, person3). |
Open a URL and inspect
| Jump to this spot in the video 3:22 | As you can see, although the image has been given the rounded corners we asked for, the square background remains. The image is still in the original JPEG format, which doesn't support transparency. There are modern formats like AVIF that are optimized and support transparency. |
Optimizing the file format using f_auto
| Jump to this spot in the video 3:57 | Let's take a look at this script, which we've called optimize.js. Cloudinary makes it possible to deliver the best, modern format for your browser by using the automatic format feature. This transformation is displayed in the URL as f_auto. |
Optimizing the quality using q_auto
| Jump to this spot in the video 4:13 | While we're at it, let's also add compression with quality auto (or q_auto) for more optimization. Applying quality auto (q_auto) will allow us to get the best compression, while maintaining great quality. You can see in the script that we are creating a chained transformation with an array of transformations. |
Run script to optimize the assets
| Jump to this spot in the video 4:34 | Run optimize.js to optimize the assets. The automatic formatting (f_auto) provides a file format that supports transparency in this case. The automatic quality (q_auto) provides an optimized, compressed quality for the asset. |
Inspect optimized assets in Chrome and Safari
| Jump to this spot in the video 4:42 | Let's see the result in Chrome and Safari. In Chrome, we're seeing an AVIF. Safari is displaying the image as a JP2. |
Keep learning
- Learn more in the named transformation documentation for images, or video.
- Dive into Cloudinary's special sauce (asset optimization), auto formatting (f_auto) and auto quality (q_auto).
- Learn more about named transformations, including ways to define them programmatically with our Admin API.
- See how named transformations support e-commerce workflows.
- Sign up for our Fundamentals for Developers course for interactive lessons on named transformations.
If you like this, you might also like...
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.