AI Photo Colorization
Colorize black and white photographs with realistic, natural colors using each::sense — the intelligent AI agent that automatically selects the best model for your request.
Quick Start
Requires an each::labs API key. Get one at eachlabs.ai.
Using curl
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Colorize this black and white photograph with realistic natural colors: accurate skin tones, believable clothing colors appropriate to the era, natural sky and vegetation colors, maintain the original photographic quality and composition"},
{"type": "image_url", "image_url": {"url": "https://example.com/black-and-white-photo.jpg"}}
]
}
],
"stream": false
}'
Using Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
api_key="YOUR_EACHLABS_API_KEY",
base_url="https://eachsense-agent.core.eachlabs.run/v1"
)
response = client.chat.completions.create(
model="eachsense/beta",
messages=[{
"role": "user",
"content": "Colorize this black and white photograph with realistic natural colors: accurate skin tones, believable clothing colors appropriate to the era, natural sky and vegetation colors, maintain the original photographic quality and composition"
}],
# Images are included in the message content array above
)
print(response.choices[0].message.content)
Streaming
Set "stream": true for real-time SSE responses, or "stream": false for complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.
Tips for Photo Colorization
- Always provide the source image via
image_urls — colorization requires the grayscale original.
- Specify the era — "1940s wartime," "1960s," "Victorian era" helps the model choose period-appropriate colors.
- Guide specific colors when known — "the car was red," "she wore a blue dress," "the house had green shutters."
- Mention the scene type — portrait, landscape, street scene, or interior to improve color accuracy.
- Request subtle or vibrant — "muted period-accurate tones" vs. "vibrant saturated colors."
Examples
Portrait Colorization
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Colorize this 1940s black and white portrait: natural warm skin tones, the subject is wearing a dark navy suit with a white shirt, brown hair, soft warm studio lighting tones, keep the classic portrait feel while adding realistic color"},
{"type": "image_url", "image_url": {"url": "https://example.com/vintage-portrait-bw.jpg"}}
]
}
],
"stream": false
}'
Historical Street Scene
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Colorize this 1920s city street photograph: period-accurate colors for brick buildings in warm red-brown, grey cobblestone streets, vintage automobiles in dark greens and blacks, pedestrians in muted earth-toned clothing, overcast sky, historically authentic color treatment"},
{"type": "image_url", "image_url": {"url": "https://example.com/1920s-street-bw.jpg"}}
]
}
],
"stream": false
}'
Landscape Colorization
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Colorize this black and white landscape photograph: lush green forests, blue sky with white clouds, brown earth tones on the mountain face, golden sunlight on the meadow in the foreground, natural vivid colors, photorealistic colorization"},
{"type": "image_url", "image_url": {"url": "https://example.com/landscape-bw.jpg"}}
]
}
],
"stream": false
}'
Workflow: Archival Colorization Pipeline
- Restore the source — Fix any damage before colorization using photo restoration.
- Research the era — Identify the time period and likely colors for accuracy.
- Provide color guidance — Specify known colors for clothing, vehicles, buildings, and signage.
- Colorize the image — Apply AI colorization with era-specific cues.
- Review and adjust — Check for color bleeding, unnatural tones, and historical accuracy.
- Enhance the result — Apply HDR enhancement for final polish.
Related Skills
Related Models
Documentation
1---2name: ai-photo-colorization3description: Colorize black and white photos using each::sense AI. Add realistic, historically accurate colors to grayscale photographs, vintage images, and archival materials. Supports portraits, landscapes, street scenes, and historical documentation. Use for: photo colorization, black and white to color, vintage photo coloring, historical photo colorization, grayscale to color. Triggers: colorize photo, black and white to color, photo colorization, add color, grayscale to color, colorize, vintage color, historical colorization, BW to color, monochrome to color4---56# AI Photo Colorization78Colorize black and white photographs with realistic, natural colors using [each::sense](https://docs.eachlabs.ai/sense/overview) — the intelligent AI agent that automatically selects the best model for your request.910## Quick Start1112> Requires an each::labs API key. Get one at [eachlabs.ai](https://eachlabs.ai).1314### Using curl1516```bash17curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \18 -H "Content-Type: application/json" \19 -H "X-API-Key: $EACHLABS_API_KEY" \20 -d '{21 "messages": [22 {23 "role": "user",24 "content": [25 {"type": "text", "text": "Colorize this black and white photograph with realistic natural colors: accurate skin tones, believable clothing colors appropriate to the era, natural sky and vegetation colors, maintain the original photographic quality and composition"},26 {"type": "image_url", "image_url": {"url": "https://example.com/black-and-white-photo.jpg"}}27 ]28 }29 ],30 "stream": false31 }'32```3334### Using Python (OpenAI SDK)3536```python37from openai import OpenAI3839client = OpenAI(40 api_key="YOUR_EACHLABS_API_KEY",41 base_url="https://eachsense-agent.core.eachlabs.run/v1"42)4344response = client.chat.completions.create(45 model="eachsense/beta",46 messages=[{47 "role": "user",48 "content": "Colorize this black and white photograph with realistic natural colors: accurate skin tones, believable clothing colors appropriate to the era, natural sky and vegetation colors, maintain the original photographic quality and composition"49 }],50 # Images are included in the message content array above51)5253print(response.choices[0].message.content)54```5556### Streaming5758Set `"stream": true` for real-time SSE responses, or `"stream": false` for complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.5960## Tips for Photo Colorization6162- **Always provide the source image** via `image_urls` — colorization requires the grayscale original.63- **Specify the era** — "1940s wartime," "1960s," "Victorian era" helps the model choose period-appropriate colors.64- **Guide specific colors** when known — "the car was red," "she wore a blue dress," "the house had green shutters."65- **Mention the scene type** — portrait, landscape, street scene, or interior to improve color accuracy.66- **Request subtle or vibrant** — "muted period-accurate tones" vs. "vibrant saturated colors."6768## Examples6970### Portrait Colorization7172```bash73curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \74 -H "Content-Type: application/json" \75 -H "X-API-Key: $EACHLABS_API_KEY" \76 -d '{77 "messages": [78 {79 "role": "user",80 "content": [81 {"type": "text", "text": "Colorize this 1940s black and white portrait: natural warm skin tones, the subject is wearing a dark navy suit with a white shirt, brown hair, soft warm studio lighting tones, keep the classic portrait feel while adding realistic color"},82 {"type": "image_url", "image_url": {"url": "https://example.com/vintage-portrait-bw.jpg"}}83 ]84 }85 ],86 "stream": false87 }'88```8990### Historical Street Scene9192```bash93curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \94 -H "Content-Type: application/json" \95 -H "X-API-Key: $EACHLABS_API_KEY" \96 -d '{97 "messages": [98 {99 "role": "user",100 "content": [101 {"type": "text", "text": "Colorize this 1920s city street photograph: period-accurate colors for brick buildings in warm red-brown, grey cobblestone streets, vintage automobiles in dark greens and blacks, pedestrians in muted earth-toned clothing, overcast sky, historically authentic color treatment"},102 {"type": "image_url", "image_url": {"url": "https://example.com/1920s-street-bw.jpg"}}103 ]104 }105 ],106 "stream": false107 }'108```109110### Landscape Colorization111112```bash113curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \114 -H "Content-Type: application/json" \115 -H "X-API-Key: $EACHLABS_API_KEY" \116 -d '{117 "messages": [118 {119 "role": "user",120 "content": [121 {"type": "text", "text": "Colorize this black and white landscape photograph: lush green forests, blue sky with white clouds, brown earth tones on the mountain face, golden sunlight on the meadow in the foreground, natural vivid colors, photorealistic colorization"},122 {"type": "image_url", "image_url": {"url": "https://example.com/landscape-bw.jpg"}}123 ]124 }125 ],126 "stream": false127 }'128```129130## Workflow: Archival Colorization Pipeline1311321. **Restore the source** — Fix any damage before colorization using photo restoration.1332. **Research the era** — Identify the time period and likely colors for accuracy.1343. **Provide color guidance** — Specify known colors for clothing, vehicles, buildings, and signage.1354. **Colorize the image** — Apply AI colorization with era-specific cues.1365. **Review and adjust** — Check for color bleeding, unnatural tones, and historical accuracy.1376. **Enhance the result** — Apply HDR enhancement for final polish.138139## Related Skills140141- [AI Photo Restoration](../ai-photo-restoration/SKILL.md) — Repair damage before colorization142- [AI HDR Enhancement](../ai-hdr-enhancement/SKILL.md) — Enhance dynamic range after colorization143- [AI Photo Style Transfer](../ai-photo-style-transfer/SKILL.md) — Apply artistic color treatments144- [AI Stock Photo](../ai-stock-photo/SKILL.md) — Generate color stock photography145146## Related Models147148- [flux-2-max](../../../models/flux-2-max/SKILL.md) — Accurate, detailed colorization149- [seedream-v4-5](../../../models/seedream-v4-5/SKILL.md) — Intelligent color inference150- [nano-banana-pro](../../../models/nano-banana-pro/SKILL.md) — Quick colorization previews151152## Documentation153154- [each::sense Overview](https://docs.eachlabs.ai/sense/overview)155- [each::labs API](https://docs.eachlabs.ai)