AI Video Loop
Create seamless looping videos for backgrounds and displays 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": "Generate a seamless looping video: gentle ocean waves rolling onto a sandy beach, foam advancing and retreating, camera static, soft afternoon light, calm and meditative, the motion must loop perfectly with no visible cut point"
}
],
"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": "Generate a seamless looping video: gentle ocean waves rolling onto a sandy beach, foam advancing and retreating, camera static, soft afternoon light, calm and meditative, the motion must loop perfectly with no visible cut point"
}]
)
print(response.choices[0].message.content)
From a Still Image
Create a looping animation from a static photo:
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": "Create a seamless looping video from this image. Animate only the water and clouds — keep everything else perfectly still. The loop should have no visible start or end point, creating an infinite cinemagraph effect."},
{"type": "image_url", "image_url": {"url": "https://example.com/lake-mountain.jpg"}}
]
}
],
"stream": false
}'
Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.
Streaming
Set "stream": true for real-time Server-Sent Events (SSE) responses, or "stream": false to receive the complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.
Loop-Friendly Subjects
| Subject |
Why It Loops Well |
Examples |
| Water |
Repetitive wave motion, flowing streams |
Ocean waves, waterfalls, rain |
| Fire / Flames |
Organic, non-linear movement |
Campfire, candles, torches |
| Clouds |
Slow, drifting, amorphous |
Sky timelapse, fog, mist |
| Abstract |
No reference points to spot the cut |
Fluid simulations, particles, gradients |
| Nature Sway |
Repetitive, wind-driven |
Grass, trees, flowers swaying |
| Ambient Scenes |
Subtle, repeating motion |
Coffee steam, aquarium, rain on window |
| Geometric |
Mathematical, cyclical |
Rotating shapes, kaleidoscope, mandala |
Examples
Fireplace Ambiance
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": "Generate a seamless looping video: a cozy fireplace with dancing flames, glowing embers, and soft crackling warmth. Close-up of the fire, warm orange light flickering on stone surround, static camera, the fire animation must loop seamlessly with no visible cut."
}
],
"stream": false
}'
Abstract Gradient
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": "Generate a seamless looping video: slowly shifting abstract color gradient, deep purple transitioning to midnight blue to dark teal and back. Smooth organic movement like aurora borealis, subtle noise texture, minimal and calming, perfect seamless loop for a website background."
}
],
"stream": false
}'
Rainy Window Cinemagraph
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": "Generate a seamless looping video: raindrops streaming down a window glass, blurred city lights visible behind, warm interior glow reflecting on the glass. Only the rain moves, everything else is still. Cinemagraph style, moody and cozy, perfect infinite loop."
}
],
"stream": false
}'
Underwater 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": "Generate a seamless looping video: underwater coral reef scene, small tropical fish swimming back and forth, light rays filtering through the water surface above, gentle current moving sea plants, bubbles rising, peaceful and hypnotic, seamless loop."
}
],
"stream": false
}'
Prompt Tips
- Always say "seamless looping" — this is the key signal for loop-compatible generation
- Mention "no visible cut point" to emphasize the seamlessness requirement
- Choose cyclical or continuous motion: Waves, fire, and wind naturally loop; a person walking across frame does not
- Keep camera static: Moving cameras make seamless loops much harder
- Limit the number of moving elements: Fewer things in motion means a cleaner loop
- Specify "cinemagraph style" for loops where only part of the image moves
Use Case Settings
| Use Case |
Duration |
Resolution |
Notes |
| Website Background |
5-10 sec |
1920x1080 |
Subtle, non-distracting |
| Digital Signage |
10-15 sec |
3840x2160 |
Eye-catching, commercial |
| Live Wallpaper |
5-10 sec |
Device resolution |
Battery efficient, subtle |
| Stream Overlay |
5-10 sec |
1920x1080 |
Transparent-friendly, subtle |
| Waiting Room Display |
10-30 sec |
1920x1080 |
Calming, ambient |
Related Skills
Related Models
Documentation
1---2name: ai-video-loop3description: Create seamless looping videos using each::sense AI. Generate perfectly looping background videos, cinemagraphs, animated wallpapers, and endless motion clips where the end connects smoothly back to the beginning. Supports nature loops, abstract motion, ambient scenes, and decorative backgrounds. Use for: website backgrounds, digital signage, live wallpapers, presentation backgrounds, streaming overlays, ambient displays, waiting room screens. Triggers: video loop, looping video, seamless loop, cinemagraph, animated background, live wallpaper, infinite loop, looping animation, gif loop, ambient video, background video, endless video4---56# AI Video Loop78Create seamless looping videos for backgrounds and displays 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": "Generate a seamless looping video: gentle ocean waves rolling onto a sandy beach, foam advancing and retreating, camera static, soft afternoon light, calm and meditative, the motion must loop perfectly with no visible cut point"25 }26 ],27 "stream": false28 }'29```3031### Using Python (OpenAI SDK)3233```python34from openai import OpenAI3536client = OpenAI(37 api_key="YOUR_EACHLABS_API_KEY",38 base_url="https://eachsense-agent.core.eachlabs.run/v1"39)4041response = client.chat.completions.create(42 model="eachsense/beta",43 messages=[{44 "role": "user",45 "content": "Generate a seamless looping video: gentle ocean waves rolling onto a sandy beach, foam advancing and retreating, camera static, soft afternoon light, calm and meditative, the motion must loop perfectly with no visible cut point"46 }]47)4849print(response.choices[0].message.content)50```5152### From a Still Image5354Create a looping animation from a static photo:5556```bash57curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \58 -H "Content-Type: application/json" \59 -H "X-API-Key: $EACHLABS_API_KEY" \60 -d '{61 "messages": [62 {63 "role": "user",64 "content": [65 {"type": "text", "text": "Create a seamless looping video from this image. Animate only the water and clouds — keep everything else perfectly still. The loop should have no visible start or end point, creating an infinite cinemagraph effect."},66 {"type": "image_url", "image_url": {"url": "https://example.com/lake-mountain.jpg"}}67 ]68 }69 ],70 "stream": false71 }'72```7374> Images are sent inside messages using the OpenAI multimodal content format. Maximum 4 images per request.7576### Streaming7778Set `"stream": true` for real-time Server-Sent Events (SSE) responses, or `"stream": false` to receive the complete result in a single response. Streaming is useful for showing progress in UIs; non-streaming is simpler for scripts and automation.7980## Loop-Friendly Subjects8182| Subject | Why It Loops Well | Examples |83|---------|------------------|---------|84| **Water** | Repetitive wave motion, flowing streams | Ocean waves, waterfalls, rain |85| **Fire / Flames** | Organic, non-linear movement | Campfire, candles, torches |86| **Clouds** | Slow, drifting, amorphous | Sky timelapse, fog, mist |87| **Abstract** | No reference points to spot the cut | Fluid simulations, particles, gradients |88| **Nature Sway** | Repetitive, wind-driven | Grass, trees, flowers swaying |89| **Ambient Scenes** | Subtle, repeating motion | Coffee steam, aquarium, rain on window |90| **Geometric** | Mathematical, cyclical | Rotating shapes, kaleidoscope, mandala |9192## Examples9394### Fireplace Ambiance9596```bash97curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \98 -H "Content-Type: application/json" \99 -H "X-API-Key: $EACHLABS_API_KEY" \100 -d '{101 "messages": [102 {103 "role": "user",104 "content": "Generate a seamless looping video: a cozy fireplace with dancing flames, glowing embers, and soft crackling warmth. Close-up of the fire, warm orange light flickering on stone surround, static camera, the fire animation must loop seamlessly with no visible cut."105 }106 ],107 "stream": false108 }'109```110111### Abstract Gradient112113```bash114curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \115 -H "Content-Type: application/json" \116 -H "X-API-Key: $EACHLABS_API_KEY" \117 -d '{118 "messages": [119 {120 "role": "user",121 "content": "Generate a seamless looping video: slowly shifting abstract color gradient, deep purple transitioning to midnight blue to dark teal and back. Smooth organic movement like aurora borealis, subtle noise texture, minimal and calming, perfect seamless loop for a website background."122 }123 ],124 "stream": false125 }'126```127128### Rainy Window Cinemagraph129130```bash131curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \132 -H "Content-Type: application/json" \133 -H "X-API-Key: $EACHLABS_API_KEY" \134 -d '{135 "messages": [136 {137 "role": "user",138 "content": "Generate a seamless looping video: raindrops streaming down a window glass, blurred city lights visible behind, warm interior glow reflecting on the glass. Only the rain moves, everything else is still. Cinemagraph style, moody and cozy, perfect infinite loop."139 }140 ],141 "stream": false142 }'143```144145### Underwater Scene146147```bash148curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \149 -H "Content-Type: application/json" \150 -H "X-API-Key: $EACHLABS_API_KEY" \151 -d '{152 "messages": [153 {154 "role": "user",155 "content": "Generate a seamless looping video: underwater coral reef scene, small tropical fish swimming back and forth, light rays filtering through the water surface above, gentle current moving sea plants, bubbles rising, peaceful and hypnotic, seamless loop."156 }157 ],158 "stream": false159 }'160```161162## Prompt Tips163164- **Always say "seamless looping"** — this is the key signal for loop-compatible generation165- **Mention "no visible cut point"** to emphasize the seamlessness requirement166- **Choose cyclical or continuous motion**: Waves, fire, and wind naturally loop; a person walking across frame does not167- **Keep camera static**: Moving cameras make seamless loops much harder168- **Limit the number of moving elements**: Fewer things in motion means a cleaner loop169- **Specify "cinemagraph style"** for loops where only part of the image moves170171## Use Case Settings172173| Use Case | Duration | Resolution | Notes |174|----------|----------|------------|-------|175| **Website Background** | 5-10 sec | 1920x1080 | Subtle, non-distracting |176| **Digital Signage** | 10-15 sec | 3840x2160 | Eye-catching, commercial |177| **Live Wallpaper** | 5-10 sec | Device resolution | Battery efficient, subtle |178| **Stream Overlay** | 5-10 sec | 1920x1080 | Transparent-friendly, subtle |179| **Waiting Room Display** | 10-30 sec | 1920x1080 | Calming, ambient |180181## Related Skills182183- [Text to Video](../text-to-video/SKILL.md) — General video generation184- [Image to Video](../image-to-video/SKILL.md) — Animate still images185- [AI Timelapse Generator](../ai-timelapse-generator/SKILL.md) — Accelerated time sequences186- [AI Music Video](../ai-music-video/SKILL.md) — Looping visuals for music187188## Related Models189190- [wan-2-1-14b](../../../models/wan-2-1-14b/SKILL.md) — High quality video generation191- [hailuo-minimax-video-01](../../../models/hailuo-minimax-video-01/SKILL.md) — Fast video generation192193## Documentation194195- [each::sense Overview](https://docs.eachlabs.ai/sense/overview)196- [each::labs API](https://docs.eachlabs.ai)