La plateforme IA pour les professionnels de l'automobile

Un

véhicule.

Décors

Beautiful background generated by Autoya
Beautiful background generated by Autoya
Beautiful background generated by Autoya

infinis.

Transformez nimporte quelle photo de véhicule en visuel premium ultra-réaliste grâce à lIA générative. Sans studio. Sans contraintes. Sans compromis.

Tout types de véhicules

Déploiement rapide

Annulez à tout moment

Vos photos de véhicules coûtent des ventes. Chaque jour.

Photos prises à la va-vite

Sur le parc, entre deux rendez-vous. Fond encombré, lumière plate, zéro cohérence entre les annonces.

Retouche manuelle

Des heures de Photoshop ou de sous-traitance pour un résultat qui sent l'artificiel. À l'échelle d'un stock, c'est intenable.

IA qui dénaturent

Les outils existants régénèrent tout y compris votre véhicule. Logos déformés, plaques effacées, reflets incohérents. Vous perdez en crédibilité.

Une plateforme. Quatre produits. Zéro compromis.

Détourage Intelligent

Notre IA isole votre véhicule au pixel près : rétroviseurs, antennes, jantes, vitres. Aucun artefact. Le véhicule reste intact.

Génération de Décors

Créez votre studio à votre image, couleurs, éclairage, éléments de marque et déployez-le sur tout votre réseau en un clic.

Studios Personnalisés

L'IA ne choisit pas dans un catalogue. Elle génère un environnement unique, adapté à l'angle, la lumière et les reflets de votre véhicule. Illimité.

Vidéo IA automatisée

Passez de la photo à la vidéo en 30 secondes. Annonces animées pour marketplaces, réseaux sociaux et publicité digitale.

Conçue avec précision. Propulsée par l’IA.

Capacités clés

  1. 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. 1

    Moteur de détourage IA
    Détection ultra-précise du véhicule.
  3. 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.
  4. 2

    Moteur de scènes génératives
    Décors générés sur mesure en temps réel.
  5. 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.
  6. 3

    Intelligence lumière & ombres
    Lumière, ombres et reflets parfaitement cohérents.
  7. 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.
  8. 4

    Cohérence de contexte
    Chaque véhicule s’intègre naturellement à sa scène.
  9. 5

    Résultats prêts à l’emploi
    Visuels immédiatement exploitables partout.

    5

    Résultats prêts à l’emploi
    Visuels immédiatement exploitables partout.
  10. 5

    Résultats prêts à l’emploi
    Visuels immédiatement exploitables partout.
  11. 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.
  12. 6

    API Autoya
    Détourez des centaines de véhicules en quelques minutes.
  13. 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.
  14. 7

    Donnez vie à vos véhicules*
    Transformez vos photos en vidéos, facilement.
  15. *Service non-inclus dans Autoya. Option distribuée par The Next Stories.

3 étapes simples. Résultat premium.

Beautiful woman washing her face

Étape 1

Prenez vos photos

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 libre ou studio brandé, à vous de choisir.

Étape 2

Génération

Autoya comprend le véhicule et génère le décor libre ou studio brandé, à vous de choisir.

Woman showing her face in the sun

Étape 3

Publiez et vendez

Recevez vos visuels premium prêt à publier et à vendre.

Woman showing her face in the sun

Étape 3

Publiez et vendez

Recevez vos visuels premium prêt à publier et à vendre.

Conçu pour les pros de l'automobile. Tous les pros.

Concessionnaires & Distributeurs VO

Annonces plus attractives, rotation de stock accélérée, image professionnelle uniforme.

Réseaux Constructeurs

Conformité de charte à l'échelle du réseau. Un studio, 500 concessions, zéro déviation.

Marketplaces Automobile

Qualité visuelle homogène via API. Intégration en quelques lignes de code.

Remarketing & Fleet

Traitement industriel par lots. Des centaines de véhicules par jour, automatiquement.

Le choix d'Autoya pour la photo ou la vidéo

  • Logo
  • Logo
  • Logo
  • Logo

Détourez en masse. Publiez instantanément.

// 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.

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.

04

Publiez

Vos véhicules sont en ligne avec des visuels professionnels, sans retouche manuelle.

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.

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.

Des questions ? Nous avons les réponses.

  • 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 ?