Exactly Grain Film Look

Grain Film Look is a photographic style from Exactly AI that emulates the look of analog film photography. It generates images with natural film grain, warm color shifts, and the organic imperfections characteristic of 35mm and medium format film, ideal for editorial photography, vintage aesthetics, and projects that benefit from an authentic, nostalgic film quality.

API Reference
INTEGRATE
Complete technical specification for integration
RequestResponse
Examples4
CODE
Ready-to-use code snippets for common workflows
reference-to-image
Racing Wheelchair Trackside Background Replacement$0.195~2m 0s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'exactly:photo@grain-film-look',
width: 1792,
height: 2400,
inputs: {
referenceImages: [
{
type: 'instruct',
image: 'https://assets.runware.ai/assets/inputs/a71a59a9-3418-4a4d-be10-dab54c0b6e93.jpg'
}
]
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/a71a59a9-3418-4a4d-be10-dab54c0b6e93.jpg"
}
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "860581dc-cc26-4328-b7db-6f51ccc0dc11",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/a71a59a9-3418-4a4d-be10-dab54c0b6e93.jpg"
}
]
}
}
]'runware run exactly:photo@grain-film-look \
width=1792 \
height=2400 \
inputs.referenceImages.0.type=instruct \
inputs.referenceImages.0.image=https://assets.runware.ai/assets/inputs/a71a59a9-3418-4a4d-be10-dab54c0b6e93.jpg{
"taskType": "imageInference",
"taskUUID": "860581dc-cc26-4328-b7db-6f51ccc0dc11",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/a71a59a9-3418-4a4d-be10-dab54c0b6e93.jpg"
}
]
}
}Response
{
"taskType": "imageInference",
"taskUUID": "860581dc-cc26-4328-b7db-6f51ccc0dc11",
"imageUUID": "6f6408f2-fb59-400e-8220-5b105e11e4ec",
"imageURL": "https://im.runware.ai/image/os/a06dlim3/ws/4/ii/6f6408f2-fb59-400e-8220-5b105e11e4ec.jpg",
"seed": 2002098916,
"cost": 0.195
}reference-to-image
Geothermal Field Report Opener$0.195~1m 50s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'exactly:photo@grain-film-look',
width: 1792,
height: 2400,
inputs: {
referenceImages: [
{
type: 'instruct',
image: 'https://assets.runware.ai/assets/inputs/ffda7aba-fbd5-4e83-9461-ff3e5fa705e5.jpg'
}
]
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/ffda7aba-fbd5-4e83-9461-ff3e5fa705e5.jpg"
}
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "4b7cb960-228f-4754-95cc-118554425cac",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/ffda7aba-fbd5-4e83-9461-ff3e5fa705e5.jpg"
}
]
}
}
]'runware run exactly:photo@grain-film-look \
width=1792 \
height=2400 \
inputs.referenceImages.0.type=instruct \
inputs.referenceImages.0.image=https://assets.runware.ai/assets/inputs/ffda7aba-fbd5-4e83-9461-ff3e5fa705e5.jpg{
"taskType": "imageInference",
"taskUUID": "4b7cb960-228f-4754-95cc-118554425cac",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/ffda7aba-fbd5-4e83-9461-ff3e5fa705e5.jpg"
}
]
}
}Response
{
"taskType": "imageInference",
"taskUUID": "4b7cb960-228f-4754-95cc-118554425cac",
"imageUUID": "3ae70cd0-ec6e-41b9-a958-b19e14ddd994",
"imageURL": "https://im.runware.ai/image/os/a01d21/ws/4/ii/3ae70cd0-ec6e-41b9-a958-b19e14ddd994.jpg",
"seed": 940204746,
"cost": 0.195
}reference-to-image
Rare Book Conservator Headshot$0.195~3m 18s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'exactly:photo@grain-film-look',
width: 1792,
height: 2400,
inputs: {
referenceImages: [
{
type: 'instruct',
image: 'https://assets.runware.ai/assets/inputs/7a4fada9-8919-4674-aa12-53b51516dfb6.jpg'
}
]
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/7a4fada9-8919-4674-aa12-53b51516dfb6.jpg"
}
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "2a324052-5b89-418c-a07b-8a423f005734",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/7a4fada9-8919-4674-aa12-53b51516dfb6.jpg"
}
]
}
}
]'runware run exactly:photo@grain-film-look \
width=1792 \
height=2400 \
inputs.referenceImages.0.type=instruct \
inputs.referenceImages.0.image=https://assets.runware.ai/assets/inputs/7a4fada9-8919-4674-aa12-53b51516dfb6.jpg{
"taskType": "imageInference",
"taskUUID": "2a324052-5b89-418c-a07b-8a423f005734",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/7a4fada9-8919-4674-aa12-53b51516dfb6.jpg"
}
]
}
}Response
{
"taskType": "imageInference",
"taskUUID": "2a324052-5b89-418c-a07b-8a423f005734",
"imageUUID": "e043db81-b1f6-47d6-8ddf-4a7e72b57b25",
"imageURL": "https://im.runware.ai/image/os/a01d21/ws/4/ii/e043db81-b1f6-47d6-8ddf-4a7e72b57b25.jpg",
"seed": 1586826659,
"cost": 0.195
}reference-to-image
Night Bus Dispatcher Editorial Headshot$0.195~2m 24s
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'exactly:photo@grain-film-look',
width: 1792,
height: 2400,
inputs: {
referenceImages: [
{
type: 'instruct',
image: 'https://assets.runware.ai/assets/inputs/e56198f2-e9a9-44ef-a9e9-28955e064c58.jpg'
}
]
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/e56198f2-e9a9-44ef-a9e9-28955e064c58.jpg"
}
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "609f9e7c-4a9b-4dd4-9fda-53688a7c1d6e",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/e56198f2-e9a9-44ef-a9e9-28955e064c58.jpg"
}
]
}
}
]'runware run exactly:photo@grain-film-look \
width=1792 \
height=2400 \
inputs.referenceImages.0.type=instruct \
inputs.referenceImages.0.image=https://assets.runware.ai/assets/inputs/e56198f2-e9a9-44ef-a9e9-28955e064c58.jpg{
"taskType": "imageInference",
"taskUUID": "609f9e7c-4a9b-4dd4-9fda-53688a7c1d6e",
"model": "exactly:photo@grain-film-look",
"width": 1792,
"height": 2400,
"inputs": {
"referenceImages": [
{
"type": "instruct",
"image": "https://assets.runware.ai/assets/inputs/e56198f2-e9a9-44ef-a9e9-28955e064c58.jpg"
}
]
}
}Response
{
"taskType": "imageInference",
"taskUUID": "609f9e7c-4a9b-4dd4-9fda-53688a7c1d6e",
"imageUUID": "d5077a5d-b287-4e79-93aa-504a10b4ce79",
"imageURL": "https://im.runware.ai/image/os/a02d21/ws/4/ii/d5077a5d-b287-4e79-93aa-504a10b4ce79.jpg",
"seed": 1822047074,
"cost": 0.195
}