;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Foto do papa usando casaco estiloso foi criada por inteligência artificial

Foto falsa criada por inteligência artificial Midjourney mostra papa Francisco usando jaqueta branca estilosa - Reprodução/Reddit/Midjourney
Foto falsa criada por inteligência artificial Midjourney mostra papa Francisco usando jaqueta branca estilosa Imagem: Reprodução/Reddit/Midjourney

De Tilt, em São Paulo

26/03/2023 11h07Atualizada em 26/03/2023 16h38

Quem navegou pelas redes sociais neste sábado (25), talvez tenha se deparado com uma imagem do papa Francisco usando um casaco grande estiloso.

Surgiram teorias de que o mandatário da Igreja Católica estaria sendo assessorado por um estilista, mas tudo não a de uma imagem criada por inteligência artificial.

A imagem foi postada há dois dias no Reddit, uma comunidade de fóruns, na página específica do Midjourney, que reúne criações feitas na ferramenta de inteligência artificial que permite criar imagens hiper-realistas a partir de uma descrição em texto.

Aparentemente, alguém postou a imagem no Twitter e por lá ela viralizou, virando alvo de memes e até inveja por parte de algumas pessoas.

"Os caras no Brooklyn [bairro de Nova York] só poderiam esperar por este nível de estilo":

"Parece que ele está prestes a marcar 40 pontos [no basquete] e fazer um triplo-duplo [quando um jogador atinge dois dígitos em estatísticas importantes, como pontos, rebotes e assistências]":

Dá para identificar se uma imagem foi criada por inteligência artificial?

Há alguns detalhes que podem dar pistas de que uma imagem foi criada por inteligência artificial, como:

  • fundo muito desfocado;
  • textos em segundo plano são indecifráveis;
  • falta de simetria no rosto (olhos de tamanhos diferentes, por exemplo);
  • pedaços da imagem parecem ter sido pintados ou que estão borrados;
  • objetos se misturando à pele.

No caso da imagem do papa, o fato é que a foto está bem boa. De suspeito tem:

  • o objeto que ele carrega na mão direita (parece uma garrafa), que está desfocado e parece fazer parte do casaco;
  • os dedos da mão direita estão com uma definição esquisita;
  • ao dar um zoom no crucifixo, a imagem fica muito borrada;
  • e sua mão esquerda, que contém dois anéis -- o anel papal sempre é usado na mão direita.
Repare na mão direita do papa (à esquerda na imagem); ela está sem definição e esquisita. Sem contar que o objeto que ele está segurando, que lembra uma garrafa, também está parecendo uma falha - Reprodução/Reddit/Midjourney - Reprodução/Reddit/Midjourney
Repare na mão direita do papa (à esquerda na imagem); ela está sem definição e esquisita
Imagem: Reprodução/Reddit/Midjourney

Talvez a medida mais prudente seja fazer uma busca reversa no Google (quando você usa o Google para procurar imagens relacionadas a uma existente). A partir disso, é possível checar se há referências de sites oficiais e confiáveis — vale também ler o contexto, pois eles também podem estar denunciando que se trata de uma imagem falsa criada por inteligência artificial.

Fotos hiper-realistas de políticos foram criadas com inteligência artificial

Durante a semana, outras duas imagens criadas por inteligência artificial viralizaram.

A partir de rumores de que o ex-presidente dos EUA Donald Trump poderia ser preso, usaram uma inteligência artificial para criar imagens falsas do político se atracando com a polícia.

Outro alvo foi o presidente francês Emmanuel Macron. Em uma das imagens falsas criada por inteligência artificial, ele aparece sentado, enquanto ao fundo há a torre Eiffel e lixo por todo lado, após os protestos contra a reforma da previdência no país.