# app.py import gradio as gr from datasets import load_dataset # Загружаем ТОЛЬКО метаданные, без изображений dataset = load_dataset( "deepghs/sankaku_full", split="train[:2000]", # первые 2000 записей streaming=False, use_auth_token=False ) # Преобразуем в список один раз (иначе streaming будет мешать) data_list = list(dataset) def search_by_tag(tag): results = [] for item in data_list: tags = item.get("tags", "") if tag.lower() in tags.lower(): rating = item.get("rating", "?") # НЕ пытаемся показать image — его нет или он битый results.append(f"ID: {item.get('id', 'N/A')} | Rating: {rating}\nTags: {tags[:100]}...") if len(results) >= 10: break return "\n\n".join(results) if results else "Ничего не найдено." with gr.Blocks() as demo: gr.Markdown("### 🔍 Sankaku Dataset — Metadata Viewer") gr.Markdown("⚠️ Изображения НЕ отображаются (недоступны). Только теги и ID.") tag = gr.Textbox(label="Поиск по тегу (например: wolf, furry, nsfw)") output = gr.Textbox(label="Результаты", lines=15) tag.change(fn=search_by_tag, inputs=tag, outputs=output) demo.launch()