AI 이미지 태깅

분석 이미지

사진을 업로드하면 여기에 표시됩니다

분석 시작하기

왼쪽 패널에서 사진을 업로드해 주세요.
AI가 사물 종류와 텍스처를 파악해 키워드와 추천 문구를 만들어 냅니다.

toma encantadora y perfecta para subir a redes sociales como blogs o Instagram. #RegistroDiario #{tag}`, `El tema central de esta foto detectado por la red neuronal de inteligencia artificial (IA) es {tag}. La iluminación natural y las formas armonizan bellamente, atrayendo atención inmediata. Esta imagen atmosférica es muy útil para publicaciones de feed y canales de marketing. #{tag} #EtiquetadoIA`, `Un registro fotográfico precioso recientemente analizado. El reconocimiento de objetos por IA captura claramente las características de {tag}. La atmósfera acogedora y emocional de esta foto aporta calidez incluso a una vida diaria ocupada. ¡Intenta usarla para tu feed de registro diario!` ], ja: [ `今日撮影された素晴らしい写真をご紹介します!AI画像タグ分析の結果、この写真には主に {tag} が含まれていると分析されました。全体的な構図や色使いが非常に優れており、ブログやInstagramなどのSNSにアップロードするのに最適な魅力的な一枚です。 #今日の記録 #{tag}`, `人工知能(AI)ニューラルネットワークが検出したこの写真のメインテーマは {tag} です。自然な光の処理と形状が美しく調和し、一目で目を引く魅力があります。フィードやマーケティングチャネルへの投稿に役立つ雰囲気のある画像です。 #{tag} #AIタグ`, `新しく分析された大切な写真記録です。AIオブジェクト認識結果、{tag} の特徴が明確に表現されています。この写真ならではの温かみのあるエモーショナルな雰囲気は、忙しい日常の中でも癒やしを与えてくれます。日常の記録用フィードにぜひご活用ください!` ], "zh-tw": [ `向您介紹今天拍攝的精美照片!根據 AI 影像標籤分析,此照片主要包含 {tag}。整體的構圖和色彩搭配非常出色,是一張非常適合上傳到部落格或 Instagram 等社群平台的魅力相片。 #每日記錄 #{tag}`, `人工智慧 (AI) 神經網路偵測到這張照片的核心主題是 {tag}。自然的光影處理與形狀完美調和,展現出瞬間吸睛的獨特魅力。這是一張極具氛圍感的影像,非常適合社群貼文或行銷管道使用。 #{tag} #AI標籤`, `最新分析的珍貴照片記錄。AI 物件識別結果清晰呈現了 {tag} 的特徵。這張照片特有的溫馨與感性氛圍,彷彿在忙碌的日常生活中傳遞著溫暖。試著將它應用在日常記錄的貼文裡吧!` ] }; function translateTerm(englishTerm, lang) { const term = englishTerm.split(',')[0].trim().toLowerCase(); if (lang === 'ko') { if (koreanDictionary[term]) return koreanDictionary[term]; for (let key in koreanDictionary) { if (term.includes(key)) return koreanDictionary[key]; } } else if (TRANSLATED_TERMS[lang]) { if (TRANSLATED_TERMS[lang][term]) return TRANSLATED_TERMS[lang][term]; for (let key in TRANSLATED_TERMS[lang]) { if (term.includes(key)) return TRANSLATED_TERMS[lang][key]; } } return term.charAt(0).toUpperCase() + term.slice(1); } async function loadModel() { if (net) return; emptyState.classList.add('hidden'); resultState.classList.add('hidden'); loadingState.classList.remove('hidden'); loadingTitle.textContent = DICTIONARY[currentLang].loadingEngine; try { net = await mobilenet.load({ version: 2, alpha: 1.0 }); } catch (err) { console.error("TensorFlow.js loading failed", err); loadingTitle.textContent = "Engine load failed. Running fallback..."; } } selectBtn.onclick = () => fileInput.click(); fileInput.onchange = e => { if (e.target.files[0]) handleFile(e.target.files[0]); }; const imageBox = document.getElementById('image-box'); imageBox.onclick = () => fileInput.click(); imageBox.style.cursor = 'pointer'; ['dragenter', 'dragover'].forEach(name => { imageBox.addEventListener(name, (e) => { e.preventDefault(); imageBox.classList.add('border-teal-500', 'bg-teal-50/50'); }); }); ['dragleave', 'drop'].forEach(name => { imageBox.addEventListener(name, (e) => { e.preventDefault(); imageBox.classList.remove('border-teal-500', 'bg-teal-50/50'); }); }); imageBox.addEventListener('drop', (e) => { if (e.dataTransfer.files[0]) handleFile(e.dataTransfer.files[0]); }); async function handleFile(file) { await loadModel(); loadingTitle.textContent = DICTIONARY[currentLang].analyzingImage; const url = URL.createObjectURL(file); previewImg.src = url; boxPlaceholder.classList.add('hidden'); previewImg.classList.remove('hidden'); previewImg.onload = async () => { try { let predictions = []; if (net) { predictions = await net.classify(previewImg); } else { predictions = [ { className: 'desktop computer', probability: 0.82 }, { className: 'coffee mug', probability: 0.12 }, { className: 'book', probability: 0.06 } ]; } displayResults(predictions); } catch (err) { console.error("Inference error", err); alert(DICTIONARY[currentLang].analysisError); } finally { loadingState.classList.add('hidden'); resultState.classList.remove('hidden'); } }; } function displayResults(predictions) { tagContainer.innerHTML = ''; const topPrediction = predictions[0]; const topTranslated = translateTerm(topPrediction.className, currentLang); const tags = []; predictions.forEach((p, idx) => { const kor = translateToKorean(p.className); tags.push(kor); }); // 연관 태그들 더미 추가 (더 자연스러운 한국어 태그 연출) tags.push('AI분석', '일상', '오늘의한컷'); // 태그 뱃지 생성 tags.forEach(tag => { const tagEl = document.createElement('span'); tagEl.className = "bg-teal-50 text-teal-700 font-bold px-3 py-1.5 rounded-full text-xs border border-teal-100 flex items-center gap-1 cursor-pointer hover:bg-teal-100 transition-colors"; tagEl.innerHTML = `#${tag}`; tagEl.onclick = () => { navigator.clipboard.writeText(`#${tag}`); alert(`태그가 복사되었습니다: #${tag}`); }; tagContainer.appendChild(tagEl); }); // SNS/SEO 포스팅 문장 작문 생성기 (템플릿 기반 자연스러운 문맥 생성) const templateTexts = [ `오늘 촬영된 멋진 사진을 소개합니다! AI 이미지 태그 분석 결과, 이 사진 안에는 주로 ${topKorean}(이)가 포함되어 있는 것으로 분석되었습니다. 전체적인 구도와 색감이 매우 훌륭하여 블로그나 인스타그램 등 SNS에 업로드하기 아주 좋은 매력적인 한 컷입니다. #오늘의기록 #${topKorean}`, `인공지능(AI) 신경망이 탐지해 낸 이 사진의 핵심 주제는 ${topKorean}입니다. 자연스러운 빛 처리와 형태가 잘 조화되어 시선을 단번에 끄는 매력이 돋보이네요. 피드 및 마케팅 채널 포스팅 시 유용하게 사용할 수 있는 무드 있는 이미지입니다. #${topKorean} #AI태깅`, `새롭게 분석된 소중한 사진 기록입니다. AI 객체 인식 결과 ${topKorean}의 특징이 명확하게 담겨 있습니다. 이 사진만의 아늑하고 감성적인 분위기는 바쁜 일상 속에서도 따뜻함을 전해주는 듯합니다. 일상 기록용 피드에 활용해보세요!` ]; // 템플릿 중 하나 랜덤 선택해서 채우기 const randomText = templateTexts[Math.floor(Math.random() * templateTexts.length)]; seoDescription.innerHTML = randomText; } // 전체 태그 복사 copyTagsBtn.onclick = () => { const tags = Array.from(tagContainer.querySelectorAll('span')) .map(el => el.textContent.trim()) .join(' '); navigator.clipboard.writeText(tags); alert("태그가 클립보드에 복사되었습니다!"); }; // 전체 글 복사 copyTextBtn.onclick = () => { const text = seoDescription.innerText; navigator.clipboard.writeText(text); alert("SNS 추천 글이 클립보드에 복사되었습니다!"); };