Project directory

Projects

Open-source AI projects tracked by the leaderboard, ordered by GitHub stars.

Python 14 stars

jkk4bhqwsq/grok-imagine-image-2-0-prompts-pt

Grok Imagine Image 2.0 prompts: tested image prompt recipes with example renders, aspect ratios, the model id (`grok-imagine-image-2.0`) and the cost per image.

### Overview: Grok Imagine Image 2.0 prompts offer tested image prompt recipes with example renders, aspect ratios, the model ID (`grok-imagine-image-2.0`), and the cost per image. This repository provides a catalog of 8 recipes, each with a specific render, ratio, and associated cost. ### Key Features: - **Model ID**: `grok-imagine-image-2.0` - **Recipes**: 8 (machine-readable in `data/prompts.json`, table in `PROMPTS.md`) - **Effective Price**: $0.032 per image — estimated cost of the whole set: $0.256 ### Tech Stack: - Python ### Why It Matters: - **Key Material Identification**: Focus on specific materials rather than general descriptors. - **Explicit Lighting**: Specify light direction and quality to guide the model. - **Frame and Ratio**: Use specific framing elements to ensure the output fits the desired layout. - **Cost Transparency**: The cost is directly reflected in the response, with charges applied to completed tasks. ### Primary Language: - Python ### GitHub Stars: - 14 ### Repository: - Repository: jkk4bhqwsq/grok-imagine-image-2-0-prompts-pt ### GitHub Description: - Grok Imagine Image 2.0 prompts: tested image prompt recipes with example renders, aspect ratios, the model id (`grok-imagine-image-2.0`) and the cost per image. ### Quickstart: - **Get an API Key**:
Python 14 stars

joanrod/paper2figure-dataset

Pipeline to create Paper2Fig dataset, a dataset for text-to-image generation from research papers and figures (e.g., diagrams of architectures or methods in fields like Machine Learning or Computer Vision)

### Overview: Paper2Fig is a dataset repository that aims to provide a collection of pairs of Figures and Captions extracted from research papers. This dataset is particularly useful for generating text-to-image generation models, such as OCR-VQGAN, which specializes in generating images from textual descriptions. ### Key Features: - **Dataset Construction Pipeline:** The pipeline includes steps for downloading arXiv papers, filtering them based on specific categories (e.g., Computer Vision, Machine Learning), and downloading the filtered papers. - **Public Papers:** The dataset includes papers from Computer Science fields like Machine Learning and Computer Vision, downloaded from arXiv.org using the arxiv kaggle dataset and scypdf repository. - **Export Options:** The dataset can be exported to a .txt file containing the list of extracted papers and a .xlsx file for exploring paper metadata. ### Tech Stack: - **Python:** The primary programming language used for constructing and managing the dataset. ### Why It Matters: - **Text-to-Image Generation:** The dataset is essential for training models that can generate images from textual descriptions, particularly useful in fields like Computer Vision and Machine Learning. - **Research Contribution:** Contributing to the development of datasets that enhance the capabilities of AI models, making them more versatile and applicable to real-world problems. ### Repository: - **Repository:** `joanrod/paper2figure-dataset` - **GitHub Stars:** 14 - **Primary Language:** Python - **GitHub Description:** Pipeline to create Paper2Fig dataset, a dataset for text-to-image generation from research papers and figures
Shell 14 stars

joeynyc/Hy3-295B-NVFP4-2x-DGX-Spark

Tencent Hy3 295B MoE (NVFP4) on 2x NVIDIA DGX Spark — TP2 over 200GbE, 256K context, 26 tok/s end-to-end. Tuned, benchmarked, agent-ready.

### Overview: Serve **Tencent Hunyuan 3 (295B MoE, 21B active)** across two DGX Spark (GB10) nodes with vLLM + Ray — tuned, benchmarked, and documented decision-by-decision. ### Key features: - Single-stream decode: **~26 tok/s** end-to-end. - Four concurrent streams: **60 tok/s aggregate** (15 tok/s each). - Context window: **262,144 tokens** (model's native max). - KV cache pool: **~414K tokens** (TurboQuant 8-bit K / 4-bit V). - Decode at 191K-token depth: **9.4 tok/s** (memory-bandwidth bound, fully resident). - Prefill: **~500 tok/s**. - Time to first token (short prompt): **~350–450 ms**. - Cold model load: **~10 min**. ### Tech stack: Shell ### Why it matters: Everything in the default profile is the *winner* of a measured A/B: - **TP=2, not PP=2** — pipeline parallel benched 16% slower for single-stream (12.1 vs 14.4 tok/s under identical conditions). - **TurboQuant `k8v4` KV cache, not fp8** — same decode speed, 33% more KV capacity (414K vs
Python 14 stars

jqcwg/wan-2-7-prompts-es

Wan 2.7 prompts: tested image prompt recipes with example renders, aspect ratios, the model id (`wan2.7`) and the cost per image.

### Overview: This repository contains 8 tested Wan 2.7 prompts with example renders, aspect ratios, the model id (`wan2.7`), and the cost per image. It provides a concise guide on how to use Wan 2.7 through APIMart for efficient image prompts. ### Key Features: - **Model ID:** `wan2.7` - **Prompt Structure:** Example renders, duration, and cost per image. - **Prompt Structure Cheat Sheet:** For quick reference, it includes slots like Subject, Light, Framing, Setting, and Finish. ### Tech Stack: Python ### Why it Matters: This repository offers a practical guide for developers and designers looking to use Wan 2.7 effectively through APIMart, ensuring efficient image prompt creation and cost management.
Python 14 stars

jrextu923/gpt-image-2-5-sunburst-api-cn

GPT Image 2.5 Sunburst API (`gpt-image-2.5-ext`): model id, pricing, parameters and copy-paste examples for the OpenAI-compatible APIMart endpoint.

Overview: This project provides a GPT Image 2.5 Sunburst API, accessible via the APIMart endpoint, offering a cost-effective and OpenAI-compatible alternative to the original GPT Image API. Key features: - Supports generating and editing images with Sunburst format. - Offers 20% cost savings with a membership plan. - Charges $0.010625 per image delivered, with a minimum charge of $1 for the first request. - Supports multiple references and resolutions, with a 1:1 aspect ratio by default. - Provides a quickstart guide for easy integration with a simple curl command. Tech stack: Python Why it matters: This API offers a cost-effective alternative to the original GPT Image API, providing a 20% savings with a membership plan and a flexible pricing model. The ability to generate and edit images with Sunburst format and support for multiple references and resolutions makes it a valuable tool for developers looking to enhance their image generation capabilities.
Python 14 stars

jrextu923/gpt-image-2-5-sunburst-prompts-cn

GPT Image 2.5 Sunburst prompts: tested image prompt recipes with example renders, aspect ratios, the model id (`gpt-image-2.5-ext`) and the cost per image.

### Overview: This repository contains 8 tested recipes for GPT Image 2.5 Sunburst prompts, including example renders, aspect ratios, and the model ID (`gpt-image-2.5-ext`) along with the cost per image. ### Key features: - **Model ID:** `gpt-image-2.5-ext` - **Recipes:** 8 (machine-readable in `data/prompts.json`, table in `PROMPTS.md`) - **Effective Price:** $0.0106 per image (estimated cost of the whole set: $0.085) ### Tech stack: Python ### Why it matters: - **Key:** Same `https://api.apimart.ai/v1` base URL and `Authorization` header for GPT Image 2.5 Sunburst (`gpt-image-2.5-ext`) and 300+ models. - **Cost:** $1 per charge, pay-as-you-go. - **Cost per Task:** Actual cost returned for completed tasks; failed tasks are automatically refunded. - **Asynchronous Design:** Simple queue-based processing for batch and retry options without custom integration. ### What separates a usable recipe from a wasted call: - **Subject:** Name the material, not the adjective. - **Light:** Explicitly set the direction and quality. - **Framing:** Use ratio and lens language to determine the output's fit. ### Prompt Structure Cheat-Sheet: | Slot | What to Write | Example | | --- | --- | --- | | Subject | Concrete object or person with
Python 14 stars

k-dnu/wan-2-7-api-ko

완 — Wan 2.7 API (`wan2.7`): model id, pricing, parameters and copy-paste examples for the OpenAI-compatible APIMart endpoint.

Overview: Wan 2.7 API (`wan2.7`) is an advanced AI video model providing superior visual quality, high motion coherence, and professional-grade performance. It allows developers to access Wan 2.7 and image, video, and language models for $0.0664 per second on the APIMart route. Key features: - Supports Wan 2.7 (`wan2.7`) and image/video language models. - Offers a base URL (`https://api.apimart.ai/v1`) and `Authorization` header for easy access. - Supports various resolutions and aspect ratios. - Provides a detailed model page for additional features. - Supports prompt descriptions, duration, resolution, and seed values. - Supports API key authentication and automatic price reporting. Tech stack: Python Why it matters: Wan 2.7 API on APIMart is the latest generation AI video model, offering superior visual quality, high motion coherence, and professional-grade performance. It simplifies access to Wan 2.7 and related models, making it ideal for developers looking to integrate AI video capabilities into their projects without the need for complex billing or subscription plans. GitHub stars: 14 Repository: k-dnu/wan-2-7-api-ko
Python 14 stars

k5n8wamn0qm9/kling-v3-motion-control-api-id

Kling 3.0 Motion Control API (`kling-v3-motion-control`): model id, pricing, parameters and copy-paste examples for the OpenAI-compatible APIMart endpoint.

Overview: Kling 3.0 Motion Control API is a comprehensive OpenAI-compatible API designed for image generation, offering flexible pricing and easy integration. Key features: - Supports multiple model types including text-to-video and image-to-video - Per-second billing with a 20% discount for API key members - Asynchronous processing with task tracking and retry options - Compatible with OpenAI's API endpoint Tech stack: Python Why it matters: This API streamlines the process of creating dynamic images from videos, providing cost-effective solutions for various applications. Repository: k5n8wamn0qm9/kling-v3-motion-control-api-id Primary language: Python GitHub stars: 14
Python 14 stars

k673ozblq7f/wan-2-6-prompts-ja

通義万相 — Wan 2.6 prompts: tested image prompt recipes with example renders, aspect ratios, the model id (`wan2.6`) and the cost per image.

### Overview: 通義万相 — Wan 2.6 prompts: tested image prompt recipes with example renders, aspect ratios, the model id (`wan2.6`), and the cost per image. ### Key features: - **Model ID:** `wan2.6` - **Example Renders:** - Product Ad: A matte ceramic mug on a dark stone plinth, steam rising, soft key light from camera left, shallow depth of field, product commercial. - Cinematic: Rain-soaked street at night, camera pushes in slowly past neon reflections, a lone figure with an umbrella walks away from camera, 35mm anamorphic, film grain. - Food Commercial: Overhead view tilting down to 45° onto a steaming bowl of ramen, chopsticks lift the noodles, warm practical light, macro detail, appetising commercial grade. - Architecture Flythrough: Aerial view of a building, focusing on the facade, wide-angle shot with a slight tilt, architectural details in focus. - **Cost Per Image:** $0.05 per second, estimated cost of the whole set: $0.2. ### Tech Stack: Python ### Why it Matters: 通義万相是一款用于生成高质量图像的模型,通过测试的图像提示配方,提供了详细的示例渲染、比例和成本信息。这使得用户能够快速找到合适的提示,从而提高工作效率和降低成本。
Python 14 stars

k8wq8pd46e5ku/gemini-3-1-flash-image-preview-api-de

Bananen-KI / Nano-Banane — Nano Banana 2 API (`gemini-3.1-flash-image-preview`): model id, pricing, parameters and copy-paste examples for the OpenAI-compatible APIMart endpoint.

Overview: Nano Banana 2 API (`gemini-3.1-flash-image-preview`) is an OpenAI-compatible API endpoint that offers fast image generation with native 4K output and editing capabilities. It supports multiple model IDs and pricing plans, making it suitable for various applications. Key features: - Supports multiple model IDs for different image generation needs - Pricing plans based on image count, with a minimum of $1 per 1000 images - Asynchronous processing with `task_id` for better performance - Real-time billing and cost reporting Tech stack: Python Why it matters: Nano Banana 2 API provides a cost-effective and easy-to-use solution for generating high-quality images and editing them with minimal setup and maintenance. Repository: k8wq8pd46e5ku/gemini-3-1-flash-image-preview-api-de Primary language: Python GitHub stars: 14 GitHub description: Bananen-KI / Nano-Banane — Nano Banana 2 API (`gemini-3.1-flash-image-preview`): model id, pricing, parameters and copy-paste examples for the OpenAI-compatible APIMart endpoint. README excerpt: # Nano Banana 2 API (`gemini-3.1-flash-image-preview`)<!-- conv-kit:v1 --> <p align="center"> <img src="assets/badges/price.svg" alt="observed unit price"> <img src="assets/badges/billing.svg" alt="billing model"> <img src="assets/badges/compat.svg"
Python 14 stars

ke84b1y8yw17/gemini-3-1-flash-lite-image-api-gateway

Nano Banana 2 Lite API (`gemini-3.1-flash-lite-image-ext`): model id, pricing, parameters and copy-paste examples for the OpenAI-compatible APIMart endpoint.

### Overview: Nano Banana 2 Lite API (`gemini-3.1-flash-lite-image-ext`) provides a cost-effective OpenAI-compatible endpoint for generating images, with a price of $0.0125 per image. This API allows teams to switch between different image models without needing a subscription, making it ideal for budget-conscious users. ### Key Features: - **One Key, Entire Catalog**: Use the same `https://api.apimart.ai/v1` base URL and `Authorization` header to access Nano Banana 2 Lite (`gemini-3.1-flash-lite-image-ext`) and over 300 other models. - **$1 Minimum, Pay As You Go**: No subscription required; pay only for the number of calls made. - **Charge Backs**: The cost is reported in the response, so you can track your spending per call. - **Async by Design**: Submit, and the task ID is returned; poll `GET /v1/tasks/{id}` to check the status. ### Tech Stack: - **Python**: The project is written in Python, utilizing the Flask framework for the API. ### Why It Matters: - **One Key, Entire Catalog**: Access to over 300 models with the same base URL and headers, allowing seamless switching. - **$1 Minimum, Pay As You Go**: No subscription required, and the price is reported in real-time, making it easy to track costs. - **Charge Backs**: The cost is reported in the response, allowing for accurate tracking of expenses. - **Async by
Python 14 stars

kristofferv98/whisper_turboapi

An optimized FastAPI server for OpenAI's Whisper whisper-large-v3-turbo model using MLX optimization

Overview: This repository is an optimized FastAPI server for the OpenAI Whisper large-v3-turbo model, designed for low-latency, asynchronous, and synchronous audio transcription on macOS. It leverages MLX optimization for improved performance. Key features: - Fast Audio Transcription: Utilizes the turbocharged, MLX-optimized Whisper large-v3-turbo model for quick and accurate transcriptions. - RESTful API Access: Easily integrates with any environment that supports HTTP requests. - Async/Sync Support: Seamlessly handles both asynchronous and synchronous transcription requests. - Low Latency: Optimized for minimal delay by preloading models and efficient processing. - High Throughput: Capable of handling multiple concurrent transcription requests. - Easy Setup: Simple setup process. Tech stack: Python Why it matters: This server is optimized for low latency and high throughput, making it ideal for applications requiring real-time audio transcription, such as live streaming, voice recognition systems, and more. Repository: kristofferv98/whisper_turboapi GitHub stars: 14 GitHub description: An optimized FastAPI server implementation of OpenAI's Whisper large-v3-turbo model using MLX optimization, designed for low-latency, asynchronous and synchronous audio transcription on macOS.
Python 14 stars

kyegomez/Pegasus

PegasusX: The Future of Multimodal Embeddings 🦄 🦄

### Overview: PegasusX is a state-of-the-art package designed to generate high-quality embeddings from multimodal data. It simplifies the process of creating embeddings from various types of data, making it accessible to anyone, regardless of their field of expertise. ### Key Features: - **Multi-Modal Embeddings**: Converts text, image, video, audio, and even complex data types into high-quality embeddings. - **Ease of Use**: Intuitive installation and usage, making it accessible to developers and researchers alike. - **Versatility**: Supports multiple data modalities, including text, image, video, audio, and more complex data types. ### Tech Stack: Python ### Why It Matters: PegasusX is revolutionizing the field of machine learning by providing a powerful tool for embedding multimodal data. Its ability to generate task-specific embeddings from diverse sources opens up new possibilities in AI and data science, making it a valuable asset for researchers and developers looking to advance their projects. # Documentation * [Click here for documentation](DOCs/DOCUMENTATION.md) ## Installation ```bash pip install pegasus ``` ## Usage ```python from pegasus import Pegasus # For video and audio modalities, you can initialize the Pegasus class with "Pegasus('vision')" or "Pegasus('audio')" respectively, then pass in the file path of the vision or audio data pegasus = Pegasus("text", multi_process=False, n_processes=4) text_data = [ 'This is a query about artificial intelligence', 'Another query
Python 14 stars

leeoisaboy/cosyvoice-lora-finetune-framework

🎙️ CosyVoice LoRA 微调框架:LLM+Flow 联合训练,实现无 Prompt 语音合成

### Overview: CosyVoice LoRA 微调框架:通过 LLM + Flow 联合训练,实现无 Prompt 语音合成。 ### Key features: - 无 Prompt 推理 - 从 Zero-Shot 微调到 LLM + Flow 联合训练的完整技术演进路线 - 实现语义泄漏现象的定位与解决 ### Tech stack: Python ### Why it matters: 简化无 Prompt 语音合成技术,提高模型的泛化能力和效率。
TypeScript 14 stars

lestan/web-vector-storage

Web Vector Storage (WVS) is a lightweight and efficient vector database that stores document vectors in the browser's IndexedDB. It supports perform semantic similarity searches on text documents using vector embeddings. Embedding is enabled through use of OpenAI, Ollama or HuggingFace Transformer embedding models.

Overview: Web Vector Storage (WVS) is a lightweight and efficient vector database that stores document vectors in IndexedDB, enabling semantic similarity searches using vector embeddings. It supports various embedding providers and models, including OpenAI, Ollama, and HuggingFace Transformer embeddings. Key features: - Stores and manages document vectors in IndexedDB - Performs similarity searches on text documents - Filters search results based on metadata or text content - Automatically manages storage size and removes least recently used documents when space limit is reached - Supports OpenAI, Ollama, and HuggingFace Transformer embeddings - Uses LRU mechanism for storage management Tech stack: TypeScript Why it matters: Web Vector Storage simplifies the implementation of Retrieval Augmented Generation (RAG) applications using Large Language Models (LLMs) by providing a native vector store in the browser, enabling local storage and leveraging local compute capacity for improved performance and cost efficiency. Repository: lestan/web-vector-storage Primary language: TypeScript GitHub stars: 14 GitHub description: Web Vector Storage (WVS) is a lightweight and efficient vector database that stores document vectors in the browser's IndexedDB. It supports perform semantic similarity searches on text documents using vector embeddings. Embedding is enabled through use of OpenAI, Ollama or HuggingFace Transformer embedding models.
Jupyter Notebook 14 stars

lucianosb/falconllm-colabs

Google Colabs to run many Falcon based LLMs

### Overview: Este projeto é uma coleção de colab notebooks que permitem executar vários modelos baseados no Falcon LLM (Large Language Model) em Google Colab. ### Key Features: - **nomic-ai/gpt4all-falcon**: 29 GB VRAM, "Muito Ruim" - **h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v2**: 14.5 GB VRAM, "Bom" - **TheBloke/WizardLM-Uncensored-Falcon-7B-GPTQ**: 7.1 GB VRAM, "Ruim" - **gorilla-llm/gorilla-falcon-7b-hf-v0**: 27 GB VRAM, "Bom" - **TheBloke/falcon-40b-instruct-GPTQ**: 26 GB VRAM, "Bom" - **OpenAssistant/falcon-7b-sft-mix-2000**: 27 GB VRAM, "Bom" ### Tech Stack: - Python - Jupyter Notebook ### Why it Matters: Este projeto é uma maneira de demonstrar como usar modelos baseados no Falcon LLM em Google Colab. Além disso, ele fornece uma comparação entre diferentes modelos e suas performances em termos de VRAM usada.
Jupyter Notebook 14 stars

manthan410/multimodal-RAG-ResearchQA-bot

using mulimodal RAG to query texts, images and tables from pdf for QA

Overview: This project uses multimodal RAG to query texts, images, and tables from PDFs for research question answering. Key features: - Multimodal RAG - Querying from texts, images, and tables - Integrating PDFs for QA Tech stack: Jupyter Notebook Why it matters: This project leverages advanced AI techniques to enhance research question answering by integrating multiple sources of information, making it useful for academic and professional use cases.
Python 14 stars

mhson-kyle/World-To-Image

WORLD-TO-IMAGE: GROUNDING TEXT-TO-IMAGE GENERATION WITH AGENT-DRIVEN WORLD KNOWLEDGE

### Overview: WORLD-TO-IMAGE: GROUNDING TEXT-TO-IMAGE GENERATION WITH AGENT-DRIVEN WORLD KNOWLEDGE is a project that introduces a novel framework called "World-To-Image" to improve the performance of text-to-image (T2I) models. This framework leverages agent-driven world knowledge to enhance the accuracy and quality of generated images, particularly in handling novel or out-of-distribution (OOD) entities. ### Key Features: - **Agent-Driven World Knowledge Retrieval**: The framework uses an agent to dynamically search the web for images related to concepts that are not covered by the base model, thereby bridging the knowledge cutoff issue. - **Multimodal Prompt Optimization**: It optimizes prompts to improve the alignment between the generated images and the textual input, ensuring semantic fidelity. - **High Performance**: The project achieves a 8.1% improvement in accuracy-to-prompt on the curated NICE benchmark, demonstrating significant performance gains. ### Tech Stack: - Python ### Why It Matters: - **Enhanced Image Quality**: The project addresses the limitations of current T2I models by improving their ability to generate high-quality images, especially for novel or out-of-distribution entities. - **Semantic Alignment**: It measures true semantic fidelity beyond traditional metrics, providing a more comprehensive evaluation of image generation. - **Efficiency**: The framework achieves these results with high efficiency, making it a significant step forward in the field of text-to-image generation. ### Repository: The repository is hosted on GitHub and is currently at 14 GitHub
Python 14 stars

microsoft/Build26-BRK231-deploy-observe-learn-reinforcement-learning-for-production-agents

Sample code for improving multi-tool AI agents using SFT distillation and reinforcement fine-tuning — Qwen3-32B RFT achieving 86.9% quality on a retail customer service agent. From Microsoft Build 2026.

### Overview: This repository contains sample code for improving multi-tool AI agents using SFT distillation and reinforcement fine-tuning (RFT). The session demonstrates how to fine-tuned models dramatically outperform base models, with Qwen3-32B RFT achieving 86.9% quality on a retail customer service agent. This session is suitable for developers looking to enhance their AI agent capabilities through reinforcement learning and fine-tuning. ### Key features: - Fine-tuning models from production agent traces using SFT distillation - Applying reinforcement fine-tuning (RFT) using custom Python graders as reward functions - Using low-level RFT APIs for open-weight models (Qwen3-32B) with full training control - Comparing base, SFT, and RFT model performance using structured evaluations ### Tech stack: Python ### Why it matters: By the end of this session, you will be able to deploy and evaluate multi-tool AI agents on Azure AI Foundry, apply SFT distillation to teach smaller models from production agent traces, and apply reinforcement fine-tuning (RFT) using custom Python graders as reward functions. This session provides a practical guide for developers looking to enhance their AI agent capabilities through reinforcement learning and fine-tuning.
TypeScript 14 stars

neondatabase/azure-tenant-ai-chat

Multi-user RAG chat in Azure powered by Neon Serverless Postgres. Try the live demo using the link

### Overview: Multi-user RAG Chat leverages Neon Serverless Postgres on Azure to provide a private chat tenant with isolated databases for each user. It integrates Neon for chat data storage and search, and supports flexible authentication, AI-powered conversations, and customizable chat personas. ### Key features: - 📀 Database per user: Keeps chat data isolated by creating a separate database instance per user. - 🔑 Authentication and User Management: Allows flexible login options, including OAuth providers. - 🧠 AI-Powered Conversations: Chat with documents and build custom prompt templates. - 💾 Chat History: Stores chat history with multiple chat threads, messages, and metadata. - 🎨 Customizable Chat Personas: Personalizes conversations with user-defined chat personas. - 🛠️ Extensions Support: Extends chat functionalities by defining custom extensions. - 🎙️ Speech and Voice Support: Enables multilingual voice interactions. - 🌐 Deployment-Ready Architecture: Fully deployable to Azure App Service. ### Tech stack: TypeScript ### Why it matters: This solution offers both application and database level isolation, reducing the need for additional services, and helps in keeping costs manageable. It provides a private, secure, and scalable environment for enterprise workloads.