Skip to the tutorial
lil cactus

How to give a photo a vintage film look

Intermediate8 minutesUpdated

Quick answer

In Lil Cactus, choose Layer then Duplicate Layer, then Filter then Noise then Film Grain…; for the sample, set Amount to 45% and Size to 3 px, keep Roughness at 50%, and click Apply. Add Layer then New Adjustment Layer then Curves…: on RGB, set the end points to Input 0 / Output 38 and Input 255 / Output 228. On Blue, set them to 0 / 16 and 255 / 218, then click Apply. Choose File then Save As then Lil Cactus Project… to keep the original, grain copy and editable Curves.

A crisp colorful tram photo before and after visible grain, faded dark tones and warmer pale walls give it a vintage look
The blacks fade to gray, the walls turn warm cream and visible grain gives the photo a print texture. Drag the handle to compare.
Time
8 minutes
Level
Intermediate
You need
A photo with detail in its dark and bright areas
Works with
RGB photo layers, including JPEG and PNG
Open the sample in Lil CactusUse your own photo

Free, no sign-up. Your photo stays on your computer.

A vintage look combines several choices: softer contrast, shifted colors and visible grain. Here, the dark tones stop short of black, the bright walls become warmer and monochrome grain adds texture. It is a chosen look, not a simulation of a particular film stock.

Keep the original photo below a grain copy. A separate Curves adjustment layer changes their appearance without rewriting their pixels, so you can retune the fading and color later.

Build a vintage look in six steps

  1. Open the photo and duplicate its layer

    Choose File then Open… and open your photo, or open the sample from this page. Choose Layer then Duplicate Layer.

    Work on the selected Background copy above Background. The lower layer keeps the original without added grain.

    File menu with Open ringed
    Open the photo as a document.
    Layer menu with Duplicate Layer ringed
    Keep an unfiltered original underneath the working copy.
  2. Add Film Grain

    Choose Filter then Noise then Film Grain… For the sample, change Amount from its 20% default to 45% and Size from 1.5 px to 3 px. Leave Roughness at 50% and Grain Pattern at 1234, their defaults.

    Amount changes the strength; Size changes the scale of the texture. Click Apply. The grain changes only brightness, by the same amount in red, green and blue, so it adds no colored specks.

    Tip If the grain is too strong, press Ctrl+Z or ⌘Z now, before adding Curves, and repeat with a lower Amount.

    Filter menu with Noise open and Film Grain ringed
    Film Grain has separate controls for strength and texture scale.
    Film Grain dialog showing Amount 45 percent, Size 3 pixels, Roughness 50 percent and Grain Pattern 1234, with Amount, Size and Apply ringed
    Raise both strength and texture size for this sample.
    Matched close crops of a pale facade and dark balcony before grain on the left and with monochrome grain on the right
    Before left, grain only right. The enlarged crop shows the texture before the tone and color changes.
  3. Fade the black and white end points

    Choose Layer then New Adjustment Layer then Curves… Keep the channel menu at the top right on RGB.

    Click the line’s lower-left end point, where Input reads 0, and set Output to 38. Click the upper-right end point, Input 255, and set Output to 228. Input is fixed at these end points; you change only Output.

    Raising the low end lifts the darkest tones. Lowering the high end softens the brightest tones. Leave the dialog open for the color change.

    Layer menu with New Adjustment Layer open and Curves ringed
    Put the tonal changes on their own adjustment layer.
    RGB Curves with the selected low end point at Input zero and Output 38; end point and whole Output control ringed
    The darkest input becomes a dark gray instead of black.
    RGB Curves with the selected high end point at Input 255 and Output 228; end point and Output ringed
    Lower the white end to soften the highlights, leaving the middle of the curve straight.
  4. Warm the highlights in the Blue channel

    In the same dialog, choose Blue in the channel menu. Click its lower-left end point, Input 0, and set Output to 16. Click the upper-right end point, Input 255, and set Output to 218.

    Adding a little blue at the low end cools the dark tones; reducing blue at the high end warms the pale walls and highlights. Click Apply.

    Blue Curves with the whole channel menu, low end point and Output 16 ringed
    Lift Blue’s low end for cooler shadows.
    Blue Curves with the high end point at Input 255 and Output 218, with the end point, Output and Apply ringed
    Less blue in the bright tones gives a warmer finish.
  5. Compare the original and revise the color

    In Layers, click the eyes beside Curves and Background copy to see the original. Turn both back on for the vintage version. Check the tram windows, pale walls and sky: their detail should remain visible.

    To change the fading or color, click the half-shaded circle thumbnail beside Curves and choose Layer then Properties… Its end points remain editable. Click Apply when you finish changing the points. The grain on Background copy is a pixel edit, so it has no settings dialog to reopen.

    Layers strip showing Curves above Background copy and Background, with the two upper visibility eyes and Curves thumbnail ringed
    Hide both upper layers for the original. The Curves thumbnail selects the editable adjustment.
    Layer menu with Properties ringed
    Properties reopens the selected Curves adjustment.
  6. Save the layers and export a finished photo

    Choose File then Save As then Lil Cactus Project… to keep the original, grain copy and Curves layer. After that, File then Save saves the project. Choose File then Export then JPEG… and click Export for a new finished picture.

    If you stay with the opened JPEG, File then Save writes a flat picture in that format; its first Save opens Save Image.

    File menu with Save As open and Lil Cactus Project ringed
    A project keeps the original and separate edits.
    File menu with Export open and JPEG ringed
    Export a combined photo to a new JPEG.
    JPEG export controls with Export ringed
    Export a finished copy for sharing.

Reuse the faded colors with a Color Lookup

A color lookup, often called a LUT, maps input colors to new colors. You can export this Curves adjustment as a .cube file and apply it to another photo. It carries the fading and color shift, not the grain already applied to the copy’s pixels.

  1. Hide Background copy with its eye, leaving Background and Curves visible. The exporter needs one visible photo layer below the adjustments. Choose File then Export then Export Color Lookup… Set Name to Faded tram, keep Quality on Standard · 33 points, and click Export .cube.
  2. Open an ungraded photo with File then Open…; to try the same sample, open tram-street.jpg again. Choose Layer then New Adjustment Layer then Color Lookup…
  3. Use the file button under Color lookup (.cube or abstract .icc) to choose Faded tram.cube. The button’s field clears afterward; the Loaded: line confirms the table. Keep Strength at 100% for the full tonal look, or lower it, then click Apply.

Use the same RGB color profile as the lookup export, sRGB for this sample. Starting exposure and colors still affect the result.

File menu with Export open and Export Color Lookup ringed
Export the visible Curves adjustment as a reusable color table.
Export Color Lookup dialog named Faded tram with Standard 33 points, Name, Quality and Export cube ringed
The export lists one color adjustment above Background.
Layer menu with New Adjustment Layer open and Color Lookup ringed
Add the lookup above an ungraded photo.
Color Lookup dialog with a loaded Faded tram table, the whole file control, Strength 100 percent and Apply ringed
Load the exported table and choose its strength.

Fix common problems

The vintage effect looks washed out

Reopen Curves as in step 5. Move the RGB low-end Output closer to 0 and the high-end Output closer to 255. The faded look needs some separation between dark objects and their surroundings.

The bright areas look too yellow

In Curves, choose Blue and move the high-end Output closer to 255. This reduces the warm shift without changing the RGB fading.

The grain looks like coarse blotches

Size controls texture scale. Select Background copy, choose Layer then Delete Layer, then select Background and choose Layer then Duplicate Layer. Run Film Grain again with a smaller Size or lower Amount. Curves stays above and keeps its settings.

The lookup has the colors but no grain

Add the texture separately with Film Grain, as in step 2.

Layers strip with the whole Background copy and Background rows ringed, with Curves above them
Select the grain copy to delete it, then select the original for a fresh duplicate.
Layer menu with Delete Layer ringed while Background copy is selected
Delete the grain copy, leaving Curves and the original.

What to do next

Vintage photo effects: questions and answers

What makes a photo look vintage?

Faded dark tones, shifted colors and grain can suggest an older print. This Lil Cactus method combines those choices; it does not reproduce a particular film stock or camera.

How much film grain should I add for a vintage look?

In Lil Cactus, judge Film Grain at the size you will share. Raise Amount until you can see the texture, then inspect fine details at 100%. If the grain hides those details, lower Amount.

Can I change the vintage colors after saving?

Yes. A Lil Cactus Project keeps the Curves layer editable through Layer › Properties… The grain copy and original also remain separate; a JPEG contains only their combined appearance.

Does a vintage Color Lookup include grain?

No. Lil Cactus’s .cube export carries global color and tone adjustments, not texture already applied to a photo layer. Add Film Grain separately.

Is my photo uploaded for a vintage effect?

No. Lil Cactus applies Film Grain, Curves and Color Lookup on your device.