
Boostez la visibilité de vos véhicules
Un
véhicule.
Décors



infinis.
Transformez n’importe quelle photo de véhicule en visuel premium ultra-réaliste grâce à l’IA générative. Sans studio. Sans contraintes. Sans compromis.
Technologie
Conçue avec précision. Propulsée par l’IA.

1
Moteur de détourage IA
Détection ultra-précise du véhicule.
1
Moteur de détourage IA
Détection ultra-précise du véhicule.
2
Moteur de scènes génératives
Décors générés sur mesure en temps réel.
2
Moteur de scènes génératives
Décors générés sur mesure en temps réel.
3
Intelligence lumière & ombres
Lumière, ombres et reflets parfaitement cohérents.
3
Intelligence lumière & ombres
Lumière, ombres et reflets parfaitement cohérents.
4
Cohérence de contexte
Chaque véhicule s’intègre naturellement à sa scène.
4
Cohérence de contexte
Chaque véhicule s’intègre naturellement à sa scène.
5
Résultats prêts à l’emploi
Visuels immédiatement exploitables partout.
5
Résultats prêts à l’emploi
Visuels immédiatement exploitables partout.
6
API Autoya
Détourez des centaines de véhicules en quelques minutes.
6
API Autoya
Détourez des centaines de véhicules en quelques minutes.
7
Donnez vie à vos véhicules*
Transformez vos photos en vidéos, facilement.
7
Donnez vie à vos véhicules*
Transformez vos photos en vidéos, facilement.
*Service non-inclus dans Autoya. Option distribuée par The Next Stories.

Étape 1
Capture
Prenez une ou plusieurs photos du véhicule. Rien de plus.

Étape 2
Génération
Autoya comprend le véhicule et génère le décor de votre choix autour.

Étape 2
Génération
Autoya comprend le véhicule et génère le décor de votre choix autour.

Étape 3
Livraison
Recevez vos visuels premium prêt à publier et à vendre.

Étape 3
Livraison
Recevez vos visuels premium prêt à publier et à vendre.
Pourquoi choisir Autoya ?
Passez de l'ordinaire au premium.
Sans Autoya
Sans Autoya
Décors génériques
Lumière plate et incohérente
Aucun impact émotionnel
Effet photoshop bas de gamme
Effet photoshop
Altérations des détails par l'IA
Images qui montrent
Avec Autoya
Décors sans limites
Lumière et ombres réalistes
Présence visuelle forte
Véhicule parfaitement intégré
Intégrité totalement respectée
Images qui vendent
Vous avez déjà vos photos ?
Premium, peu importe la photo de départ.
Décors et studios personnalisés
Optez pour un décor ou studio premium.
Annonces vidéos automatisées
Donnez vie à vos véhicules à travers une annonce captivante.
Transformez n’importe quelle photo de véhicule en une annonce captivante. Détourez, synchronisez les données du véhicule, générez la vidéo et publiez. C'est simple.
API Autoya
Détourez en masse. Publiez instantanément.
Nous sommes connectés avec ces partenaires :

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas

// compiled preview • AUTOYA_API 1.0 /* generated for visual effec
t – not executed */ const IMG_WIDTH = 8; const FADE_ZONE = 35; con
st MAX_PARTICLES = 2500; const TRANSITION = 0.05; function clamp(n
, a, b) { return Math.max(a, Math.min(b, n)); } function lerp(a, b
, t) { return a + (b - a) * t; } const now = () => performance.now
(); function rng(min, max) { return Math.random() * (max - min) +
min; } class Particle { constructor(x, y, vx, vy, r, a) { this.x =
x; this.y = y; this.vx = vx; this.vy = vy; this.r = r; this.a = a
; } step(dt) { this.x += this.vx * dt; this.y += this.vy * dt; } }
const scanner = { x: Math.floor(window.innerWidth / 2), width: CA
R_WIDTH, glow: 3.5, }; function drawParticle(ctx, p) { ctx.globalA
lpha = clamp(p.a, 0, 1); ctx.drawImage(gradient, p.x - p.r, p.y -
p.r, p.r * 2, p.r * 2); } function tick(t) { const dt = 0.016; } c
onst state = { intensity: 1.2, particles: MAX_PARTICLES }; const b
ounds = { w: window.innerWidth, h: 300 }; const gradient = documen
t.createElement('canvas'); const ctx = gradient.getContext('2d');
ctx.globalCompositeOperation = 'lighter'; const state = { intensit
y: 1.2, particles: MAX_PARTICLES }; const bounds = { w: window.inn
erWidth, h: 300 }; const gradient = document.createElement('canvas
01
Envoyez
Envoyez vos images par lots via API REST, FTP ou connecteur direct. Formats JPG, PNG, WebP acceptés.
01
Envoyez
Envoyez vos images par lots via API REST, FTP ou connecteur direct. Formats JPG, PNG, WebP acceptés.
02
Détourage automatique
Détourage intérieur/extérieur, fond premium généré et templates constructeurs appliqués. Véhicule prêt à vendre en moins de 2 minutes.
02
Détourage automatique
Détourage intérieur/extérieur, fond premium généré et templates constructeurs appliqués. Véhicule prêt à vendre en moins de 2 minutes.
03
Intégration directe
Images détourées ET originaux synchronisés automatiquement dans votre progiciel VO ou DMS. Zéro manipulation manuelle.
03
Intégration directe
Images détourées ET originaux synchronisés automatiquement dans votre progiciel VO ou DMS. Zéro manipulation manuelle.
04
Publiez
Vos véhicules sont en ligne avec des visuels professionnels, sans retouche manuelle.
04
Publiez
Vos véhicules sont en ligne avec des visuels professionnels, sans retouche manuelle.
Témoignages
Autoya a transformé notre façon de valoriser nos véhicules. Des visuels premium, réalistes et cohérents, générés en quelques minutes, sans contraintes de shooting. Nos annonces sont plus performantes et notre image de marque clairement montée d’un cran.
Marc D., Directeur Commercial
Ils font confiance à Autoya
Ils font confiance à Autoya
Jusqu’où peut aller la génération de décors avec Autoya ?
Comment Autoya garantit-il l’intégrité des véhicules ?
L'IA peut-elle parfois produire des résultats inattendus dans les décors ?
Autoya remplace-t-il un studio photo traditionnel ?
Autoya est-il compatible avec les DMS automobiles ?










