From 246a82a5143052736856cd9cdfae4630e91b0f87 Mon Sep 17 00:00:00 2001 From: Taehoon Kim Date: Sat, 16 Aug 2025 07:39:49 +0200 Subject: [PATCH 1/4] Pull from dev branch (#27) * fixed/updated: model search function, removed outdated update-status method * added:cli command for using all query combinations, fallback categorization for popular services * update welcome and help content * updated footer commands * centered scapo ascii ast * changed vhs files structure and rerun gifs * updated tui commands * removed obsolete gifs * updated: readme, quickstart on mcp and command usage, more models --------- Co-authored-by: Nicolo Vallarano --- QUICKSTART.md | 49 ++++-- README.md | 63 ++++++-- models/audio/eleven-labs/cost_optimization.md | 21 ++- models/audio/eleven-labs/metadata.json | 4 +- models/audio/eleven-labs/parameters.json | 11 +- models/audio/eleven-labs/pitfalls.md | 27 +++- models/audio/eleven-labs/prompting.md | 12 +- models/audio/firefliesai/metadata.json | 13 ++ models/audio/firefliesai/pitfalls.md | 8 + models/audio/firefliesai/prompting.md | 14 ++ models/audio/mubert/metadata.json | 13 ++ models/audio/mubert/prompting.md | 12 ++ models/audio/murf-ai/cost_optimization.md | 8 + models/audio/murf-ai/metadata.json | 13 ++ models/audio/murf-ai/parameters.json | 12 ++ models/audio/murf-ai/prompting.md | 12 ++ models/audio/otterai/cost_optimization.md | 14 ++ models/audio/otterai/metadata.json | 13 ++ models/audio/otterai/parameters.json | 12 ++ models/audio/otterai/prompting.md | 15 ++ .../audio/stable-audio/cost_optimization.md | 8 + models/audio/stable-audio/metadata.json | 13 ++ models/audio/stable-audio/parameters.json | 12 ++ models/audio/stable-audio/pitfalls.md | 8 + models/audio/stable-audio/prompting.md | 19 +++ models/audio/whisper/cost_optimization.md | 13 ++ models/audio/whisper/metadata.json | 13 ++ models/audio/whisper/parameters.json | 37 +++++ models/audio/whisper/pitfalls.md | 18 +++ models/audio/whisper/prompting.md | 29 ++++ models/video/beatovenai/cost_optimization.md | 12 ++ models/video/beatovenai/metadata.json | 13 ++ models/video/beatovenai/parameters.json | 12 ++ models/video/beatovenai/prompting.md | 13 ++ .../generative-ai-video/cost_optimization.md | 13 ++ .../video/generative-ai-video/metadata.json | 13 ++ .../video/generative-ai-video/parameters.json | 16 ++ models/video/generative-ai-video/pitfalls.md | 8 + models/video/generative-ai-video/prompting.md | 20 +++ models/video/heygen/cost_optimization.md | 14 +- models/video/heygen/metadata.json | 6 +- models/video/heygen/parameters.json | 20 ++- models/video/heygen/pitfalls.md | 20 +++ models/video/heygen/prompting.md | 19 ++- models/video/lovoai/cost_optimization.md | 12 ++ models/video/lovoai/metadata.json | 13 ++ models/video/lovoai/parameters.json | 12 ++ models/video/lovoai/prompting.md | 12 ++ models/video/meetgeek/metadata.json | 13 ++ models/video/meetgeek/prompting.md | 15 ++ models/video/pika/cost_optimization.md | 15 ++ models/video/pika/metadata.json | 6 +- models/video/pika/parameters.json | 13 ++ models/video/pika/pitfalls.md | 6 +- models/video/pika/prompting.md | 8 +- models/video/runway/cost_optimization.md | 10 +- models/video/runway/metadata.json | 6 +- models/video/runway/parameters.json | 47 +++++- models/video/runway/pitfalls.md | 19 ++- models/video/runway/prompting.md | 26 +++- models/video/runwayml/cost_optimization.md | 11 +- models/video/runwayml/metadata.json | 6 +- models/video/runwayml/parameters.json | 8 +- models/video/runwayml/pitfalls.md | 19 ++- models/video/runwayml/prompting.md | 12 +- models/video/sora/cost_optimization.md | 35 +++++ models/video/sora/metadata.json | 13 ++ models/video/sora/parameters.json | 29 ++++ models/video/sora/pitfalls.md | 16 ++ models/video/sora/prompting.md | 31 ++++ src/cli.py | 140 +++++++++++------- 71 files changed, 1110 insertions(+), 158 deletions(-) create mode 100644 models/audio/firefliesai/metadata.json create mode 100644 models/audio/firefliesai/pitfalls.md create mode 100644 models/audio/firefliesai/prompting.md create mode 100644 models/audio/mubert/metadata.json create mode 100644 models/audio/mubert/prompting.md create mode 100644 models/audio/murf-ai/cost_optimization.md create mode 100644 models/audio/murf-ai/metadata.json create mode 100644 models/audio/murf-ai/parameters.json create mode 100644 models/audio/murf-ai/prompting.md create mode 100644 models/audio/otterai/cost_optimization.md create mode 100644 models/audio/otterai/metadata.json create mode 100644 models/audio/otterai/parameters.json create mode 100644 models/audio/otterai/prompting.md create mode 100644 models/audio/stable-audio/cost_optimization.md create mode 100644 models/audio/stable-audio/metadata.json create mode 100644 models/audio/stable-audio/parameters.json create mode 100644 models/audio/stable-audio/pitfalls.md create mode 100644 models/audio/stable-audio/prompting.md create mode 100644 models/audio/whisper/cost_optimization.md create mode 100644 models/audio/whisper/metadata.json create mode 100644 models/audio/whisper/parameters.json create mode 100644 models/audio/whisper/pitfalls.md create mode 100644 models/audio/whisper/prompting.md create mode 100644 models/video/beatovenai/cost_optimization.md create mode 100644 models/video/beatovenai/metadata.json create mode 100644 models/video/beatovenai/parameters.json create mode 100644 models/video/beatovenai/prompting.md create mode 100644 models/video/generative-ai-video/cost_optimization.md create mode 100644 models/video/generative-ai-video/metadata.json create mode 100644 models/video/generative-ai-video/parameters.json create mode 100644 models/video/generative-ai-video/pitfalls.md create mode 100644 models/video/generative-ai-video/prompting.md create mode 100644 models/video/heygen/pitfalls.md create mode 100644 models/video/lovoai/cost_optimization.md create mode 100644 models/video/lovoai/metadata.json create mode 100644 models/video/lovoai/parameters.json create mode 100644 models/video/lovoai/prompting.md create mode 100644 models/video/meetgeek/metadata.json create mode 100644 models/video/meetgeek/prompting.md create mode 100644 models/video/pika/cost_optimization.md create mode 100644 models/video/pika/parameters.json create mode 100644 models/video/sora/cost_optimization.md create mode 100644 models/video/sora/metadata.json create mode 100644 models/video/sora/parameters.json create mode 100644 models/video/sora/pitfalls.md create mode 100644 models/video/sora/prompting.md diff --git a/QUICKSTART.md b/QUICKSTART.md index 8a45966..12cffa9 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -14,6 +14,8 @@ uv run playwright install ### 2. Configure LLM (Choose One) +**Important:** Extraction quality varies by LLM - stronger models find more specific tips! + #### Option A: OpenRouter (Recommended - Free Model!) ```bash cp .env.example .env @@ -63,23 +65,29 @@ Extract specific optimization tips for AI services: scapo scrape discover --update # Step 2: Extract tips for specific services -scapo scrape targeted --service "Eleven Labs" --limit 20 -scapo scrape targeted --service "GitHub Copilot" --limit 20 +scapo scrape targeted --service "Eleven Labs" --limit 20 --query-limit 20 +scapo scrape targeted --service "GitHub Copilot" --limit 20 --query-limit 20 # Or batch process by category -scapo scrape batch --category video --limit 15 +scapo scrape batch --category video --limit 20 --batch-size 3 # Process ALL priority services one by one -scapo scrape all --priority ultra --limit 20 # Process all ultra priority services -scapo scrape all --dry-run # Preview what will be processed +scapo scrape all --limit 20 --query-limit 20 --priority ultra # Process all ultra priority services +scapo scrape all --dry-run # Preview what will be processed ``` ### Key Commands: - `discover --update` - Find services from GitHub Awesome lists - `targeted --service NAME` - Extract tips for one service -- `batch --category TYPE` - Process multiple services (limited) +- `batch --category TYPE` - Process ALL services in category (in batches) - `all --priority LEVEL` - Process ALL services one by one +### Important Parameters: +- **--query-limit**: Number of search patterns (5 = quick, 20 = comprehensive) +- **--batch-size**: Services to process in parallel (3 = default balance) +- **--limit**: Posts per search (20+ recommended for best results) + + ## 📚 Approach 2: Legacy Sources Use predefined sources from `sources.yaml`: @@ -109,6 +117,27 @@ scapo models search "copilot" # Search for specific models cat models/audio/eleven-labs/cost_optimization.md ``` +### 5. (Optional) Use with Claude Desktop + +Add SCAPO as an MCP server to query your extracted tips (from models/ folder) directly in Claude: + +```json +// Add to claude_desktop_config.json +{ + "mcpServers": { + "scapo": { + "command": "npx", + "args": ["@scapo/mcp-server"], + "env": { + "SCAPO_MODELS_PATH": "path/to/scapo/models" + } + } + } +} +``` + +Then ask Claude: "Get best practices for Midjourney" - no Python needed! + ## 📊 Understanding the Output SCAPO creates organized documentation: @@ -126,13 +155,13 @@ models/ ```bash # ❌ Too few posts = no useful tips found -scapo scrape targeted --service "HeyGen" --limit 5 # ~20% success rate +scapo scrape targeted --service "HeyGen" --limit 5 --query-limit 5 # ~20% success rate # ✅ Sweet spot = reliable extraction -scapo scrape targeted --service "HeyGen" --limit 20 # ~80% success rate +scapo scrape targeted --service "HeyGen" --limit 20 --query-limit 20 # ~80% success rate # 🎯 Maximum insights = comprehensive coverage -scapo scrape targeted --service "HeyGen" --limit 30 # Finds rare edge cases +scapo scrape targeted --service "HeyGen" --limit 30 --query-limit 20 # Finds rare edge cases ``` **Why it matters:** LLMs need multiple examples to identify patterns. More posts = higher chance of finding specific pricing, bugs, and workarounds. @@ -148,7 +177,7 @@ LLM_QUALITY_THRESHOLD=0.4 # More tips (less strict) ### "No tips extracted" ```bash # Solution: Use more posts -scapo scrape targeted --service "Service Name" --limit 25 +scapo scrape targeted --service "Service Name" --limit 25 --query-limit 20 ``` ### "Service not found" diff --git a/README.md b/README.md index 74aeb33..2506f5b 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ scapo scrape discover --update Extract optimization tips for specific services ```bash -scapo scrape targeted --service "Eleven Labs" --limit 20 +scapo scrape targeted --service "Eleven Labs" --limit 20 --query-limit 20 ``` ![Scapo Discover](assets/scrape-targeted.gif) @@ -61,7 +61,7 @@ scapo scrape targeted --service "Eleven Labs" --limit 20 Batch process multiple priority services (Recommended) ```bash -scapo scrape batch --max-services 3 --category audio +scapo scrape batch --category audio --batch-size 3 --limit 20 ``` ![Scapo Discover](assets/scrape-batch.gif) @@ -89,6 +89,8 @@ uv run playwright install # Browser automation ### 2. Configure Your LLM Provider +**Note:** Extraction quality depends on your chosen LLM - experiment with different models for best results! + #### Recommended: OpenRouter (Cloud) ```bash cp .env.example .env @@ -111,14 +113,14 @@ Get your API key from [openrouter.ai](https://openrouter.ai/) scapo scrape discover --update # Step 2: Extract optimization tips for services -scapo scrape targeted --service "HeyGen" --limit 20 -scapo scrape targeted --service "Midjourney" --limit 20 +scapo scrape targeted --service "HeyGen" --limit 20 --query-limit 20 +scapo scrape targeted --service "Midjourney" --limit 20 --query-limit 20 # Or batch process multiple services -scapo scrape batch --category video --limit 15 +scapo scrape batch --category video --limit 20 --batch-size 3 # Process ALL priority services one by one (i.e. all services with 'ultra' tag, see targted_search_generator.py) -scapo scrape all --priority ultra --limit 20 +scapo scrape all --limit 20 --query-limit 20 --priority ultra ``` #### Option B: Legacy method: using sources.yaml file @@ -196,13 +198,13 @@ scapo scrape discover --show-all # List all services scapo scrape targeted \ --service "Eleven Labs" \ # Service name (handles variations, you can put whatever --> if we don't get hit in services.json, then it will be created under 'general' folder) --limit 20 \ # Posts per search (15-20 recommended) - --max-queries 10 # Number of searches + --query-limit 20 # Query patterns per service (20 = all) # Batch process scapo scrape batch \ --category audio \ # Filter by category - --max-services 3 \ # Services to process - --limit 15 # Posts per search + --batch-size 3 \ # Services per batch + --limit 20 # Posts per search ### Legacy Sources Mode @@ -249,13 +251,52 @@ SCRAPING_DELAY_SECONDS=2 # Be respectful MAX_POSTS_PER_SCRAPE=100 # Limit per source ``` -### Why --limit Matters (More Posts = Better Tips) +### Key Parameters Explained + +**--query-limit** (How many search patterns per service) +```bash +--query-limit 5 # Quick scan: 1 pattern per category (cost, optimization, technical, workarounds, bugs) +--query-limit 20 # Full scan: All 4 patterns per category (default, most comprehensive) +``` + +**--batch-size** (For `batch` command: services processed in parallel) +```bash +--batch-size 1 # Sequential (slowest, least resource intensive) +--batch-size 3 # Default (good balance) +--batch-size 5 # Faster (more resource intensive) +``` + +**--limit** (Posts per search - More = Better extraction) ```bash --limit 5 # ❌ Often finds nothing (too few samples) --limit 15 # ✅ Good baseline (finds common issues) --limit 25 # 🎯 Will find something (as long as there is active discussion on it) ``` -so, hand-wavy breakdown: With 5 posts, extraction success ~20%. With 20+ posts, success jumps to ~80%. +Hand-wavy breakdown: With 5 posts, extraction success ~20%. With 20+ posts, success jumps to ~80%. + +## 🤖 MCP Server for Claude Desktop + +Query your extracted tips directly in Claude (reads from models/ folder - run scrapers first!): + +```json +// Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) +// or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) +{ + "mcpServers": { + "scapo": { + "command": "npx", + "args": ["@scapo/mcp-server"], + "env": { + "SCAPO_MODELS_PATH": "C:\\path\\to\\scapo\\models" // Your models folder + } + } + } +} +``` + +Then ask Claude: "Get me best practices for GitHub Copilot" or "What models are good for coding?" + +See [mcp/README.md](mcp/README.md) for full setup and available commands. ## 🎨 Interactive TUI diff --git a/models/audio/eleven-labs/cost_optimization.md b/models/audio/eleven-labs/cost_optimization.md index b775087..21a53fd 100644 --- a/models/audio/eleven-labs/cost_optimization.md +++ b/models/audio/eleven-labs/cost_optimization.md @@ -1,10 +1,25 @@ # Eleven Labs - Cost Optimization Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Cost & Pricing Information -- 60% of credits left (~400,000 credits) -- Subscription renewal failed due to paywall issues +- Free trial limited to 10,000 characters per month +- 60% of credits left (about 400,000 credits) +- $15k saved in ElevenLabs fees +- Free access limited to 15 minutes of voice recording per day +- Last year I was paying +$1000/month for AI voiceovers for only one channel. +- $29/month for unlimited usage on ElevenReader. - $99/month plan +- $29/month for unlimited +- Credits should last until June 5th +- 10,000 free credits per month on the free plan. + +## Money-Saving Tips + +- I built my own tool, just for me. No subscriptions, no limits, just fast, clean voice generation. Cost me ~ $4/month to run. +- MiniMax have daily credit refresh in TTS not like ElevenLabs where you need to wait 1 month to refresh. +- Use the free plan to get 10,000 credits per month for free. +- So, when I do, I use a temporary email to create a new account so the 10,000 chatacter limit 'resets.' +- When converting text to voice, adding periods between letters (e.g., B.O.D.) can force the model to pronounce acronyms letter by letter, though it may consume more credits. diff --git a/models/audio/eleven-labs/metadata.json b/models/audio/eleven-labs/metadata.json index a81c5cd..648a41d 100644 --- a/models/audio/eleven-labs/metadata.json +++ b/models/audio/eleven-labs/metadata.json @@ -1,13 +1,13 @@ { "service": "Eleven Labs", "category": "audio", - "last_updated": "2025-08-14T18:53:47.086694", + "last_updated": "2025-08-16T13:46:28.510586", "extraction_timestamp": null, "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 79, + "posts_analyzed": 338, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/audio/eleven-labs/parameters.json b/models/audio/eleven-labs/parameters.json index c2ea1ac..14be4a6 100644 --- a/models/audio/eleven-labs/parameters.json +++ b/models/audio/eleven-labs/parameters.json @@ -1,6 +1,6 @@ { "service": "Eleven Labs", - "last_updated": "2025-08-14T18:53:46.993256", + "last_updated": "2025-08-16T13:46:28.342822", "recommended_settings": { "setting_0": { "description": "voice_name=Mun W" @@ -16,9 +16,12 @@ } }, "cost_optimization": { - "tip_0": "60% of credits left (~400,000 credits)", - "tip_1": "Subscription renewal failed due to paywall issues", - "pricing": "$99/month plan" + "tip_0": "Free trial limited to 10,000 characters per month", + "tip_1": "60% of credits left (about 400,000 credits)", + "pricing": "$29/month for unlimited", + "tip_3": "Free access limited to 15 minutes of voice recording per day", + "tip_4": "Credits should last until June 5th", + "tip_5": "10,000 free credits per month on the free plan." }, "sources": [ "Reddit community", diff --git a/models/audio/eleven-labs/pitfalls.md b/models/audio/eleven-labs/pitfalls.md index 8d0794f..4a0864b 100644 --- a/models/audio/eleven-labs/pitfalls.md +++ b/models/audio/eleven-labs/pitfalls.md @@ -1,16 +1,35 @@ # Eleven Labs - Common Pitfalls & Issues -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Technical Issues -### ⚠️ Unable to switch back to a Custom LLM after testing with a built-in model (gemini-2.0-flash); interface shows 'Fix the errors to proceed' even though Server URL, Model ID, and API Key are correctly filled. +### ⚠️ Cannot switch back to a Custom LLM after testing with a built-in model (gemini-2.0-flash) on the ElevenLabs Conversational AI dashboard; even after correctly filling out Server URL, Model ID, and API Key, the interface still shows the message: 'Fix the errors to proceed' even though there is no error. **Fix**: Store API keys in environment variables or use a secrets manager. -### ⚠️ audio plays back a female voice regardless of which option is selected when using elevenLabs API +### ⚠️ ElevenLabs API always returns a female voice regardless of the selected gender option + +### ⚠️ Tasker Action Error: 'HTTP Request' (step 11) Task: 'Text To Speech To File Elevenlabs {"detail":{"status":"invalid_uid","message". "An invalid ID has been received: %voice_id'. Make sure to provide a correct one."} ## Policy & Account Issues -### ⚠️ Account credits wiped (about 400,000 credits) after attempting to renew a $99/month subscription; paywall prevented payment and support ticket received no response. +### ⚠️ Eleven Labs wiped 400,000 credits from a user's account on the $99/month plan; the user had 60% of credits left (about 400,000 credits) and was unable to renew subscription due to paywall issues. +**Note**: Be aware of terms of service regarding account creation. + +### ⚠️ Free trial for ElevenLabs is limited to 10,000 characters a month, which is insufficient for scripts that are often ~20-40,000 characters long. **Note**: Be aware of terms of service regarding account creation. +## Cost & Limits + +### 💰 ElevenReader credit system is considered bad by some users, making it off-putting for average consumers. + +### 💰 Free access to ElevenLabs is limited to 15 minutes of voice recording per day. + +### 💰 Free trial limited to 10,000 characters per month + +### 💰 Free access limited to 15 minutes of voice recording per day + +### 💰 $29/month for unlimited usage on ElevenReader. + +### 💰 $29/month for unlimited + diff --git a/models/audio/eleven-labs/prompting.md b/models/audio/eleven-labs/prompting.md index 9fbb41e..7d1e1a3 100644 --- a/models/audio/eleven-labs/prompting.md +++ b/models/audio/eleven-labs/prompting.md @@ -1,11 +1,21 @@ # Eleven Labs Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques +- I built my own tool, just for me. No subscriptions, no limits, just fast, clean voice generation. Cost me ~ $4/month to run. +- Use ElevenLabsService(voice_name="Mun W") in Manim Voiceover +- MiniMax have daily credit refresh in TTS not like ElevenLabs where you need to wait 1 month to refresh. +- The ElevenLabs voice agent is the entry point into the whole system, and then it will pass off web development or web design requests over to n8n agents via a webhook in order to actually do the work. +- Use the free plan to get 10,000 credits per month for free. +- So, when I do, I use a temporary email to create a new account so the 10,000 chatacter limit 'resets.' - self.set_speech_service(ElevenLabsService(voice_name="Mun W")) +- MacWhisper 11.10 supports ElevenLabs Scribe for cloud transcription. - from manim_voiceover.services.elevenlabs import ElevenLabsService +- I built my own tool to avoid ElevenLabs fees. +- When converting text to voice, adding periods between letters (e.g., B.O.D.) can force the model to pronounce acronyms letter by letter, though it may consume more credits. +- ElevenLabs Scribe v1 achieves 15.0% WER on 5-10 minute patient-doctor chats, averaging 36 seconds per file. ## Recommended Settings diff --git a/models/audio/firefliesai/metadata.json b/models/audio/firefliesai/metadata.json new file mode 100644 index 0000000..42938a1 --- /dev/null +++ b/models/audio/firefliesai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Fireflies.ai", + "category": "audio", + "last_updated": "2025-08-16T13:46:29.623761", + "extraction_timestamp": "2025-08-16T13:29:54.297790", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 171, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/audio/firefliesai/pitfalls.md b/models/audio/firefliesai/pitfalls.md new file mode 100644 index 0000000..76989fb --- /dev/null +++ b/models/audio/firefliesai/pitfalls.md @@ -0,0 +1,8 @@ +# Fireflies.ai - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ Failed to create a send channel message in Slack. Error from Slack: invalid_thread_ts + diff --git a/models/audio/firefliesai/prompting.md b/models/audio/firefliesai/prompting.md new file mode 100644 index 0000000..0d2dc0d --- /dev/null +++ b/models/audio/firefliesai/prompting.md @@ -0,0 +1,14 @@ +# Fireflies.ai Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Configure Zapier to send transcripts to a channel without duplicate notifications by adjusting thread settings +- Use custom prompts called 'apps' in Fireflies.ai to create reusable ready‑made prompts. +- Use Zapier to send Fireflies.ai transcripts to Slack + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/audio/mubert/metadata.json b/models/audio/mubert/metadata.json new file mode 100644 index 0000000..3a899a4 --- /dev/null +++ b/models/audio/mubert/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Mubert", + "category": "audio", + "last_updated": "2025-08-16T13:46:30.709332", + "extraction_timestamp": "2025-08-16T13:42:52.386062", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 39, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/audio/mubert/prompting.md b/models/audio/mubert/prompting.md new file mode 100644 index 0000000..01ce399 --- /dev/null +++ b/models/audio/mubert/prompting.md @@ -0,0 +1,12 @@ +# Mubert Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- If the order was approved by the moderator and submitted in due time, payment will be made within 7-10 business days. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/audio/murf-ai/cost_optimization.md b/models/audio/murf-ai/cost_optimization.md new file mode 100644 index 0000000..4a30bf6 --- /dev/null +++ b/models/audio/murf-ai/cost_optimization.md @@ -0,0 +1,8 @@ +# Murf AI - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Get 33% OFF on Murf AI annual plans Today — [Click Here to Redeem](https://get.murf.ai/pu42t7km32e9) + diff --git a/models/audio/murf-ai/metadata.json b/models/audio/murf-ai/metadata.json new file mode 100644 index 0000000..5e08fb5 --- /dev/null +++ b/models/audio/murf-ai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Murf AI", + "category": "audio", + "last_updated": "2025-08-16T13:46:28.892820", + "extraction_timestamp": "2025-08-16T13:25:27.042235", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 111, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/audio/murf-ai/parameters.json b/models/audio/murf-ai/parameters.json new file mode 100644 index 0000000..072d4bc --- /dev/null +++ b/models/audio/murf-ai/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Murf AI", + "last_updated": "2025-08-16T13:46:28.710482", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Get 33% OFF on Murf AI annual plans Today \u2014 [Click Here to Redeem](https://get.murf.ai/pu42t7km32e9)" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/audio/murf-ai/prompting.md b/models/audio/murf-ai/prompting.md new file mode 100644 index 0000000..dd1827c --- /dev/null +++ b/models/audio/murf-ai/prompting.md @@ -0,0 +1,12 @@ +# Murf AI Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Murf AI turns plain text into ultra realistic speech across 20+ languages with over 200 voices—no recording booth required. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/audio/otterai/cost_optimization.md b/models/audio/otterai/cost_optimization.md new file mode 100644 index 0000000..9bad7e8 --- /dev/null +++ b/models/audio/otterai/cost_optimization.md @@ -0,0 +1,14 @@ +# Otter.ai - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- subscription tier that had the 100 hours of audio transcription per month + +## Money-Saving Tips + +- The free tier of Otter.ai feels limited, especially for users needing more than min of transcription per month for FREE +- $100 per year for the paid plan that includes automatic video import +- Use Otter.ai to transcribe your videos, which offers 600 minutes of transcription per month for FREE. + diff --git a/models/audio/otterai/metadata.json b/models/audio/otterai/metadata.json new file mode 100644 index 0000000..b2075bd --- /dev/null +++ b/models/audio/otterai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Otter.ai", + "category": "audio", + "last_updated": "2025-08-16T13:46:29.256512", + "extraction_timestamp": null, + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 174, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/audio/otterai/parameters.json b/models/audio/otterai/parameters.json new file mode 100644 index 0000000..266cbca --- /dev/null +++ b/models/audio/otterai/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Otter.ai", + "last_updated": "2025-08-16T13:46:29.085739", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "subscription tier that had the 100 hours of audio transcription per month" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/audio/otterai/prompting.md b/models/audio/otterai/prompting.md new file mode 100644 index 0000000..e0f1670 --- /dev/null +++ b/models/audio/otterai/prompting.md @@ -0,0 +1,15 @@ +# Otter.ai Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- The free tier of Otter.ai feels limited, especially for users needing more than min of transcription per month for FREE +- $100 per year for the paid plan that includes automatic video import +- Use Otter.ai to transcribe your videos, which offers 600 minutes of transcription per month for FREE. +- Otter.ai allows you to import your videos automatically for transcription. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/audio/stable-audio/cost_optimization.md b/models/audio/stable-audio/cost_optimization.md new file mode 100644 index 0000000..2ac60cd --- /dev/null +++ b/models/audio/stable-audio/cost_optimization.md @@ -0,0 +1,8 @@ +# Stable Audio - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- free version for generating and downloading tracks up to 45 seconds long + diff --git a/models/audio/stable-audio/metadata.json b/models/audio/stable-audio/metadata.json new file mode 100644 index 0000000..c1dc7e9 --- /dev/null +++ b/models/audio/stable-audio/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Stable Audio", + "category": "audio", + "last_updated": "2025-08-16T13:46:30.308483", + "extraction_timestamp": "2025-08-16T13:35:08.539487", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 142, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/audio/stable-audio/parameters.json b/models/audio/stable-audio/parameters.json new file mode 100644 index 0000000..e79ca91 --- /dev/null +++ b/models/audio/stable-audio/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Stable Audio", + "last_updated": "2025-08-16T13:46:30.150034", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "free version for generating and downloading tracks up to 45 seconds long" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/audio/stable-audio/pitfalls.md b/models/audio/stable-audio/pitfalls.md new file mode 100644 index 0000000..9681165 --- /dev/null +++ b/models/audio/stable-audio/pitfalls.md @@ -0,0 +1,8 @@ +# Stable Audio - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ I'm not sure if this is an intentional thing or a bug, but when I try to disable stable audio, it just doesn't do anything? I'll click it, it will take me out of the video settings, but will keep stable audio on. Has anyone else encountered this, and if so, is there a surefire way of fixing it, or is it meant to not be turned off for safety reasons or something? + diff --git a/models/audio/stable-audio/prompting.md b/models/audio/stable-audio/prompting.md new file mode 100644 index 0000000..fe556c4 --- /dev/null +++ b/models/audio/stable-audio/prompting.md @@ -0,0 +1,19 @@ +# Stable Audio Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Stability AI has released Stable Audio 2.0, an AI model that generates high-quality, full-length audio tracks up to 3 minutes long with coherent musical structure. +- Stable Audio 2.0 introduces audio-to-audio generation, allowing users to transform uploaded samples using natural language prompts. +- Stable audio by placing the SSDT-HPET.aml and some settings in the config.plist file. +- Stable Audio 2.0 can generate high-quality, full-length audio tracks up to 3 minutes long with coherent musical structure. +- The model introduces audio-to-audio generation, allowing users to transform uploaded samples using natural language prompts. +- Generates high-quality, full-length audio tracks up to 3 minutes long with coherent musical structure +- The model introduces audio-to-audio generation, allowing users to transform uploaded samples using natural language prompts +- The model introduces audio-to-audio generation, allowing users to transform uploaded samples using natural language prompts, and enhances sound effect gener + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/audio/whisper/cost_optimization.md b/models/audio/whisper/cost_optimization.md new file mode 100644 index 0000000..ce1ee78 --- /dev/null +++ b/models/audio/whisper/cost_optimization.md @@ -0,0 +1,13 @@ +# Whisper - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- free, private, and unlimited transcription system + +## Money-Saving Tips + +- I believe in the power of open-source tools and want to share how you can set up a free, private, and unlimited transcription system on your own computer using OpenAI's Whisper. +- MacWhisper is a free Mac app to transcribe audio and video files for easy transcription and subtitle generation. + diff --git a/models/audio/whisper/metadata.json b/models/audio/whisper/metadata.json new file mode 100644 index 0000000..7ddf94b --- /dev/null +++ b/models/audio/whisper/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Whisper", + "category": "audio", + "last_updated": "2025-08-16T13:46:29.973474", + "extraction_timestamp": "2025-08-16T13:31:51.650731", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 380, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/audio/whisper/parameters.json b/models/audio/whisper/parameters.json new file mode 100644 index 0000000..fedfb96 --- /dev/null +++ b/models/audio/whisper/parameters.json @@ -0,0 +1,37 @@ +{ + "service": "Whisper", + "last_updated": "2025-08-16T13:46:29.798264", + "recommended_settings": { + "setting_0": { + "description": "language=en" + }, + "setting_1": { + "description": "beam_size=5" + }, + "setting_2": { + "description": "no_speech_threshold=0.3" + }, + "setting_3": { + "description": "condition_on_previous_text=False" + }, + "setting_4": { + "description": "temperature=0" + }, + "setting_5": { + "description": "vad_filter=True" + }, + "setting_6": { + "description": "model=base" + }, + "setting_7": { + "description": "endpoint=http://192.168.60.96:5000/transcribe" + } + }, + "cost_optimization": { + "unlimited_option": "free, private, and unlimited transcription system" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/audio/whisper/pitfalls.md b/models/audio/whisper/pitfalls.md new file mode 100644 index 0000000..228339a --- /dev/null +++ b/models/audio/whisper/pitfalls.md @@ -0,0 +1,18 @@ +# Whisper - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ faster-whisper is not compatible with the Open AI API + +### ⚠️ whisper.cpp is not compatible with the Open AI API + +### ⚠️ Need alternative to MacWhisper that allows connecting an API to use Whisper via the Groq API and is open‑source and free + +### ⚠️ OpenWebUI does not offer API endpoint for Whisper (for audio transcriptions) + +## Cost & Limits + +### 💰 free, private, and unlimited transcription system + diff --git a/models/audio/whisper/prompting.md b/models/audio/whisper/prompting.md new file mode 100644 index 0000000..67393a9 --- /dev/null +++ b/models/audio/whisper/prompting.md @@ -0,0 +1,29 @@ +# Whisper Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Use faster-whisper-server (now speaches) for a local STT server that adheres to the Open AI Whisper API +- Use the offline version of Whisper that does not require an API key so you won't be paying a few cents each time the scripts run +- It can recognize speech in numerous languages and convert it to text. +- I believe in the power of open-source tools and want to share how you can set up a free, private, and unlimited transcription system on your own computer using OpenAI's Whisper. +- Use transcribe(file_path, language="en", beam_size=5, no_speech_threshold=0.3, condition_on_previous_text=False, temperature=0, vad_filter=True) to minimize hallucinations +- Use curl to send audio to local Whisper API: curl -X POST -F "audio=@/2025-02-03_14-31-12.m4a" -F "model=base" http://192.168.60.96:5000/transcribe +- MacWhisper is a free Mac app to transcribe audio and video files for easy transcription and subtitle generation. + +## Recommended Settings + +- language=en +- beam_size=5 +- no_speech_threshold=0.3 +- condition_on_previous_text=False +- temperature=0 +- vad_filter=True +- model=base +- endpoint=http://192.168.60.96:5000/transcribe + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/video/beatovenai/cost_optimization.md b/models/video/beatovenai/cost_optimization.md new file mode 100644 index 0000000..2605501 --- /dev/null +++ b/models/video/beatovenai/cost_optimization.md @@ -0,0 +1,12 @@ +# Beatoven.ai - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- it's absolutely free!! + +## Money-Saving Tips + +- You can recompose, edit and change as per your convenience for any time limit you want + diff --git a/models/video/beatovenai/metadata.json b/models/video/beatovenai/metadata.json new file mode 100644 index 0000000..eb85bb3 --- /dev/null +++ b/models/video/beatovenai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Beatoven.ai", + "category": "video", + "last_updated": "2025-08-16T13:04:55.894824", + "extraction_timestamp": "2025-08-16T13:03:25.229739", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 25, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/beatovenai/parameters.json b/models/video/beatovenai/parameters.json new file mode 100644 index 0000000..b223a99 --- /dev/null +++ b/models/video/beatovenai/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Beatoven.ai", + "last_updated": "2025-08-16T13:04:55.144659", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "it's absolutely free!!" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/beatovenai/prompting.md b/models/video/beatovenai/prompting.md new file mode 100644 index 0000000..ad632b5 --- /dev/null +++ b/models/video/beatovenai/prompting.md @@ -0,0 +1,13 @@ +# Beatoven.ai Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Simple to use the tool- choose the duration, tempo, genre, mood, and voila! you have the tune that carries your stor +- You can recompose, edit and change as per your convenience for any time limit you want + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/video/generative-ai-video/cost_optimization.md b/models/video/generative-ai-video/cost_optimization.md new file mode 100644 index 0000000..38addc4 --- /dev/null +++ b/models/video/generative-ai-video/cost_optimization.md @@ -0,0 +1,13 @@ +# Generative AI Video - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- $1 per video +- $250/month + +## Money-Saving Tips + +- I made a free, open-source app to generate AI video from images directly in your DaVinci Resolve Media Pool. + diff --git a/models/video/generative-ai-video/metadata.json b/models/video/generative-ai-video/metadata.json new file mode 100644 index 0000000..fc0c708 --- /dev/null +++ b/models/video/generative-ai-video/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Generative AI Video", + "category": "video", + "last_updated": "2025-08-16T13:04:51.485428", + "extraction_timestamp": "2025-08-16T12:57:13.619612", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 137, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/generative-ai-video/parameters.json b/models/video/generative-ai-video/parameters.json new file mode 100644 index 0000000..8ca0a1d --- /dev/null +++ b/models/video/generative-ai-video/parameters.json @@ -0,0 +1,16 @@ +{ + "service": "Generative AI Video", + "last_updated": "2025-08-16T13:04:50.720592", + "recommended_settings": { + "setting_0": { + "description": "aspect_ratio=9:16" + } + }, + "cost_optimization": { + "pricing": "$250/month" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/generative-ai-video/pitfalls.md b/models/video/generative-ai-video/pitfalls.md new file mode 100644 index 0000000..53d696f --- /dev/null +++ b/models/video/generative-ai-video/pitfalls.md @@ -0,0 +1,8 @@ +# Generative AI Video - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ Trying to generate AI video to go along with my music, but I get the same error every time. Image is upscaled, passed to VAE encode into a KSampler where the error occurs. Error occurred when executing KSampler: cannot access local variable 'cond_item' where it is not associated with a value. + diff --git a/models/video/generative-ai-video/prompting.md b/models/video/generative-ai-video/prompting.md new file mode 100644 index 0000000..1045ebf --- /dev/null +++ b/models/video/generative-ai-video/prompting.md @@ -0,0 +1,20 @@ +# Generative AI Video Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- I have another tool I created which generates AI videos from text. +- I made a free, open-source app to generate AI video from images directly in your DaVinci Resolve Media Pool. +- Use Veo 3 Fast API to automatically generate AI videos in seconds +- AnimateDiff in ComfyUI is an amazing way to generate AI Videos. +- WORKFLOWS ARE ON CIVIT https://civitai.com/articles/2379 AS WELL AS THIS GUIDE WITH PICTURES + +## Recommended Settings + +- aspect_ratio=9:16 + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/video/heygen/cost_optimization.md b/models/video/heygen/cost_optimization.md index 0ef6237..8b70a30 100644 --- a/models/video/heygen/cost_optimization.md +++ b/models/video/heygen/cost_optimization.md @@ -1,16 +1,10 @@ # HeyGen - Cost Optimization Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Cost & Pricing Information -- Why am I doing this? HeyGen requires a minimum of two seats for -- This is the same price as a single seat in the Team plan when billed annually. -- You get all Team plan features and benefits. -- You pay $30/month (billed monthly). -- No annual commitment required from you. - -## Money-Saving Tips - -- If you need longer videos and priority rendering, consider the HeyGen Team plan. +- Creating 40 videos of 30 minutes each would cost approximately $4,800. +- $120 per 30 minutes (credits) for HeyGen video generation. +- You pay $30/month (billed monthly) for a single seat in the HeyGen Team plan, which is the same price as a single seat when billed annually. diff --git a/models/video/heygen/metadata.json b/models/video/heygen/metadata.json index 03f203f..3bf4dec 100644 --- a/models/video/heygen/metadata.json +++ b/models/video/heygen/metadata.json @@ -1,13 +1,13 @@ { "service": "HeyGen", "category": "video", - "last_updated": "2025-08-14T18:53:16.244752", - "extraction_timestamp": "2025-08-14T18:53:16.033238", + "last_updated": "2025-08-16T13:04:47.180134", + "extraction_timestamp": "2025-08-16T12:43:38.426608", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 48, + "posts_analyzed": 226, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/video/heygen/parameters.json b/models/video/heygen/parameters.json index 5198e59..0c5080a 100644 --- a/models/video/heygen/parameters.json +++ b/models/video/heygen/parameters.json @@ -1,13 +1,19 @@ { "service": "HeyGen", - "last_updated": "2025-08-14T18:53:16.148751", - "recommended_settings": {}, + "last_updated": "2025-08-16T13:04:46.544871", + "recommended_settings": { + "setting_0": { + "description": "voice_id=6d9be61f6e" + }, + "setting_1": { + "description": "type=voice" + }, + "setting_2": { + "description": "name=script_01" + } + }, "cost_optimization": { - "tip_0": "Why am I doing this? HeyGen requires a minimum of two seats for", - "tip_1": "This is the same price as a single seat in the Team plan when billed annually.", - "tip_2": "You get all Team plan features and benefits.", - "pricing": "You pay $30/month (billed monthly).", - "tip_4": "No annual commitment required from you." + "pricing": "You pay $30/month (billed monthly) for a single seat in the HeyGen Team plan, which is the same price as a single seat when billed annually." }, "sources": [ "Reddit community", diff --git a/models/video/heygen/pitfalls.md b/models/video/heygen/pitfalls.md new file mode 100644 index 0000000..fe3f3ab --- /dev/null +++ b/models/video/heygen/pitfalls.md @@ -0,0 +1,20 @@ +# HeyGen - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ "Text missing: CQ8hKNwp" error indicates missing text in API request + +### ⚠️ hit a red flag when I got to the API part and needed a credit card. + +### ⚠️ 404 error when loading generated video URL in N8N workflow + +### ⚠️ I decided to ask the HeyGen GPT to give me a worst case scenario on how bad could API costs r + +## Cost & Limits + +### 💰 HeyGen has a 30-minute limit per audio when using the unlimited plan, which is more focused on video. + +### 💰 HeyGen has limits on a paid subscription. + diff --git a/models/video/heygen/prompting.md b/models/video/heygen/prompting.md index 0b4e16b..105ee12 100644 --- a/models/video/heygen/prompting.md +++ b/models/video/heygen/prompting.md @@ -1,12 +1,23 @@ # HeyGen Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques -- Go to HeyGen, click on 'Create New Avatar', pick the 'Hyper-Realistic' option, and upload a clear, 2-minute video of yourself to generate your avatar. -- After creating the avatar, start a new video project in HeyGen and connect your AI voice to the avatar. -- If you need longer videos and priority rendering, consider the HeyGen Team plan. +- HeyGen offers over 100+ customizable avatars for creating videos. +- Connect your AI voice to your avatar: Start a new video project in HeyGen. +- HeyGen affiliate program provides a 25% recurring commission for 12 months. +- Include a "text" field in the template JSON for each script variable to avoid the "Text missing" error +- Check that authentication headers or tokens are correctly set in the N8N HeyGen node to prevent 404 responses +- Verify that the video URL returned by HeyGen is correct and that the video has finished processing before attempting to load it in N8N +- Create New Avatar: Head over to HeyGen, click on 'Create New Avatar', pick the 'Hyper-Realistic' option, and upload a clear, 2-minute video of yourself to generate your avatar. +- Use HeyGen clone to automatically post short form videos about trending topics across multiple social media platforms. + +## Recommended Settings + +- voice_id=6d9be61f6e +- type=voice +- name=script_01 ## Sources diff --git a/models/video/lovoai/cost_optimization.md b/models/video/lovoai/cost_optimization.md new file mode 100644 index 0000000..e1bb4b4 --- /dev/null +++ b/models/video/lovoai/cost_optimization.md @@ -0,0 +1,12 @@ +# Lovo.ai - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- FREE + +## Money-Saving Tips + +- beta test offer to produce your work into audio format for FREE with AI + diff --git a/models/video/lovoai/metadata.json b/models/video/lovoai/metadata.json new file mode 100644 index 0000000..313ea20 --- /dev/null +++ b/models/video/lovoai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Lovo.ai", + "category": "video", + "last_updated": "2025-08-16T13:04:54.434190", + "extraction_timestamp": "2025-08-16T13:02:23.552424", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 42, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/lovoai/parameters.json b/models/video/lovoai/parameters.json new file mode 100644 index 0000000..fee7c35 --- /dev/null +++ b/models/video/lovoai/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Lovo.ai", + "last_updated": "2025-08-16T13:04:53.737025", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "FREE" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/lovoai/prompting.md b/models/video/lovoai/prompting.md new file mode 100644 index 0000000..5ba49c1 --- /dev/null +++ b/models/video/lovoai/prompting.md @@ -0,0 +1,12 @@ +# Lovo.ai Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- beta test offer to produce your work into audio format for FREE with AI + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/video/meetgeek/metadata.json b/models/video/meetgeek/metadata.json new file mode 100644 index 0000000..19d61e0 --- /dev/null +++ b/models/video/meetgeek/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "MeetGeek", + "category": "video", + "last_updated": "2025-08-16T13:04:52.935395", + "extraction_timestamp": "2025-08-16T12:59:13.624879", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 6, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/meetgeek/prompting.md b/models/video/meetgeek/prompting.md new file mode 100644 index 0000000..3c9b44b --- /dev/null +++ b/models/video/meetgeek/prompting.md @@ -0,0 +1,15 @@ +# MeetGeek Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- MeetGeek supports platforms: Zoom, MS Teams, Google Meet, any browser-based meeting + offline meetings +- MeetGeek offers summaries & insights: action items, next steps, talk-to-listen ratios, sentiment, and key topic detection +- MeetGeek provides accurate AI-powered transcripts in 50+ languages +- MeetGeek enables collaboration via shareable meeting snip + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/video/pika/cost_optimization.md b/models/video/pika/cost_optimization.md new file mode 100644 index 0000000..6bc074a --- /dev/null +++ b/models/video/pika/cost_optimization.md @@ -0,0 +1,15 @@ +# Pika - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Switching to 5GB tier saves $0.15/month +- free for next five days +- $1.41/mo for 10GB tier +- $1.26/mo for 5GB tier + +## Money-Saving Tips + +- Switch to the 5GB tier to save $0.15/month. + diff --git a/models/video/pika/metadata.json b/models/video/pika/metadata.json index d4f4cf2..fbee3ab 100644 --- a/models/video/pika/metadata.json +++ b/models/video/pika/metadata.json @@ -1,13 +1,13 @@ { "service": "Pika", "category": "video", - "last_updated": "2025-08-12T20:07:40.706852", - "extraction_timestamp": "2025-08-12T20:07:30.860248", + "last_updated": "2025-08-16T13:04:45.881806", + "extraction_timestamp": "2025-08-16T12:40:48.986723", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 86, + "posts_analyzed": 333, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/video/pika/parameters.json b/models/video/pika/parameters.json new file mode 100644 index 0000000..85caadc --- /dev/null +++ b/models/video/pika/parameters.json @@ -0,0 +1,13 @@ +{ + "service": "Pika", + "last_updated": "2025-08-16T13:04:45.145886", + "recommended_settings": {}, + "cost_optimization": { + "pricing": "$1.26/mo for 5GB tier", + "tip_1": "free for next five days" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/pika/pitfalls.md b/models/video/pika/pitfalls.md index e824d4e..11d0a44 100644 --- a/models/video/pika/pitfalls.md +++ b/models/video/pika/pitfalls.md @@ -1,8 +1,6 @@ # Pika - Common Pitfalls & Issues -*Last updated: 2025-08-12* +*Last updated: 2025-08-16* -## Technical Issues - -### ⚠️ Blank window bug when using Pika backup on Intel HD 4000 GPU +*No major issues reported yet. This may indicate limited community data.* diff --git a/models/video/pika/prompting.md b/models/video/pika/prompting.md index 1f51089..d6490d7 100644 --- a/models/video/pika/prompting.md +++ b/models/video/pika/prompting.md @@ -1,8 +1,12 @@ # Pika Prompting Guide -*Last updated: 2025-08-12* +*Last updated: 2025-08-16* -*No specific prompting tips available yet. Check back for updates.* +## Tips & Techniques + +- Check updates on GNOME software to get new mesa drivers and fix the blank window issue for apps using GTK4 such as pika backup +- Enable automatic backups for your pods. +- Switch to the 5GB tier to save $0.15/month. ## Sources diff --git a/models/video/runway/cost_optimization.md b/models/video/runway/cost_optimization.md index ea2e55c..3ca14bb 100644 --- a/models/video/runway/cost_optimization.md +++ b/models/video/runway/cost_optimization.md @@ -1,8 +1,16 @@ # Runway - Cost Optimization Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Cost & Pricing Information +- lol see the limit is 3 +- $95/month Unlimited plan +- $35/month pro plan for 90 videos (2250 credits) +- $15/month standard plan for 25 videos (625 credits, 25 credits per video) - $0.08 (8 credits) per image generation +## Money-Saving Tips + +- Use automation to bypass throttling on Unlimited accounts + diff --git a/models/video/runway/metadata.json b/models/video/runway/metadata.json index 0ae9460..8a0cd23 100644 --- a/models/video/runway/metadata.json +++ b/models/video/runway/metadata.json @@ -1,13 +1,13 @@ { "service": "Runway", "category": "video", - "last_updated": "2025-08-14T18:58:55.287621", - "extraction_timestamp": null, + "last_updated": "2025-08-16T13:04:44.483857", + "extraction_timestamp": "2025-08-16T12:37:17.234079", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 75, + "posts_analyzed": 400, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/video/runway/parameters.json b/models/video/runway/parameters.json index 224b659..d7097f3 100644 --- a/models/video/runway/parameters.json +++ b/models/video/runway/parameters.json @@ -1,12 +1,55 @@ { "service": "Runway", - "last_updated": "2025-08-14T18:58:55.198172", + "last_updated": "2025-08-16T13:04:43.762221", "recommended_settings": { "setting_0": { - "description": "max_reference_images=3" + "description": "credits_per_video=25" + }, + "setting_1": { + "description": "standard_plan_videos=25" + }, + "setting_2": { + "description": "standard_plan_credits=625" + }, + "setting_3": { + "description": "pro_plan_videos=90" + }, + "setting_4": { + "description": "pro_plan_credits=2250" + }, + "setting_5": { + "description": "unlimited_plan_cost=$95" + }, + "setting_6": { + "description": "standard_plan_cost=$15" + }, + "setting_7": { + "description": "pro_plan_cost=$35" + }, + "setting_8": { + "description": "automation_workaround=use automation script" + }, + "setting_9": { + "description": "credits_per_image=8" + }, + "setting_10": { + "description": "cost_per_image=0.08" + }, + "setting_11": { + "description": "max_references=3" + }, + "setting_12": { + "description": "sdk_version=python_v3.1" + }, + "setting_13": { + "description": "api_docs=https://docs.dev.runwayml.com/" + }, + "setting_14": { + "description": "api_key_url=https://dev.runwayml.com/" } }, "cost_optimization": { + "tip_0": "lol see the limit is 3", "pricing": "$0.08 (8 credits) per image generation" }, "sources": [ diff --git a/models/video/runway/pitfalls.md b/models/video/runway/pitfalls.md index 1874557..ced6cdb 100644 --- a/models/video/runway/pitfalls.md +++ b/models/video/runway/pitfalls.md @@ -1,8 +1,23 @@ # Runway - Common Pitfalls & Issues -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ stuck generating only one video at a time, with incredibly slow rendering times + +### ⚠️ Probably the most frustrating career bug for me right now is the landing scores. So often when I touch down it says that I landed off runway (I didn't) or that I entered the taxiway without announcing (still in the middle of the runway). When the second glitch happens it will immediately give me at least one taxiway speeding violation as well. Most of the time this will take my rating from an S down to a B, making it very difficult to keep my reputation up. I would say one of these bugs happens + +## Policy & Account Issues + +### ⚠️ Runway Unlimited accounts ($95/month) experience prominent throttling +**Note**: Be aware of terms of service regarding account creation. ## Cost & Limits -### 💰 limit is 3 +### 💰 Over the past few days, using my trained model (character) it doesn't seem to matter what style I select, I'll get photographic/realistic results. I'm trying to get cartoon and graphic novel results but it keeps spitting out realistic results (and most of the time it looks nothing like my trained model. What the hell am I paying for if it's garbage results 90% of the time? Was working fine for me a few days ago, now everything is trash (right after I dropped $30 on credits, no less). What gives + +### 💰 lol see the limit is 3 + +### 💰 $95/month Unlimited plan diff --git a/models/video/runway/prompting.md b/models/video/runway/prompting.md index 3d7b9f3..5995ec8 100644 --- a/models/video/runway/prompting.md +++ b/models/video/runway/prompting.md @@ -1,16 +1,32 @@ # Runway Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques -- Gen-4 References is now available in our API -- Use Python SDK v3.1 → https://github.com/runwayml/sdk-python -- Get an API key at https://dev.runwayml.com/ +- Runway is pretty user-friendly, but only lets you input 30 seconds of video at a time. +- Use Gen-4 References via the Runway API to generate images with up to 3 reference images per request. +- Obtain an API key from https://dev.runwayml.com/ to access Runway’s image generation features. +- Use automation to bypass throttling on Unlimited accounts +- Use the Python SDK v3.1 for easier integration with Runway services. ## Recommended Settings -- max_reference_images=3 +- credits_per_video=25 +- standard_plan_videos=25 +- standard_plan_credits=625 +- pro_plan_videos=90 +- pro_plan_credits=2250 +- unlimited_plan_cost=$95 +- standard_plan_cost=$15 +- pro_plan_cost=$35 +- automation_workaround=use automation script +- credits_per_image=8 +- cost_per_image=0.08 +- max_references=3 +- sdk_version=python_v3.1 +- api_docs=https://docs.dev.runwayml.com/ +- api_key_url=https://dev.runwayml.com/ ## Sources diff --git a/models/video/runwayml/cost_optimization.md b/models/video/runwayml/cost_optimization.md index f32e0e2..e6d92d4 100644 --- a/models/video/runwayml/cost_optimization.md +++ b/models/video/runwayml/cost_optimization.md @@ -1,11 +1,12 @@ # RunwayML - Cost Optimization Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Cost & Pricing Information -- Runwayml Gen3 Too expensive than Kling and Vidu -- lol see the limit is 3 -- Unlimited [$95/month] accounts -- RunwayML Monthly 6 10s for 15$ +- daily_image_limit=3 + +## Money-Saving Tips + +- I think Sam is taking my image generation limit as expectation lol. lol see the limit is 3 diff --git a/models/video/runwayml/metadata.json b/models/video/runwayml/metadata.json index b237551..7af7b5c 100644 --- a/models/video/runwayml/metadata.json +++ b/models/video/runwayml/metadata.json @@ -1,13 +1,13 @@ { "service": "RunwayML", "category": "video", - "last_updated": "2025-08-14T18:55:25.468159", - "extraction_timestamp": "2025-08-14T18:55:16.191298", + "last_updated": "2025-08-16T13:04:48.622051", + "extraction_timestamp": null, "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 67, + "posts_analyzed": 282, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/video/runwayml/parameters.json b/models/video/runwayml/parameters.json index d11f21e..f64e914 100644 --- a/models/video/runwayml/parameters.json +++ b/models/video/runwayml/parameters.json @@ -1,15 +1,13 @@ { "service": "RunwayML", - "last_updated": "2025-08-14T18:55:25.373596", + "last_updated": "2025-08-16T13:04:47.882957", "recommended_settings": { "setting_0": { - "description": "pretrained_model_name_or_path=runwayml/stable-diffusion-v1-5" + "description": "model=runwayml/stable-diffusion-v1-5" } }, "cost_optimization": { - "tip_0": "Runwayml Gen3 Too expensive than Kling and Vidu", - "tip_1": "lol see the limit is 3", - "pricing": "RunwayML Monthly 6 10s for 15$" + "tip_0": "daily_image_limit=3" }, "sources": [ "Reddit community", diff --git a/models/video/runwayml/pitfalls.md b/models/video/runwayml/pitfalls.md index 8ef0b91..38331f4 100644 --- a/models/video/runwayml/pitfalls.md +++ b/models/video/runwayml/pitfalls.md @@ -1,15 +1,22 @@ # RunwayML - Common Pitfalls & Issues -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* -## Policy & Account Issues +## Technical Issues -### ⚠️ There were a lot of complaints about Runway due to prominent throttling of Unlimited [$95/month] accounts. -**Note**: Be aware of terms of service regarding account creation. +### ⚠️ Stuck generating only one video at a time, with incredibly slow rendering times while on the unlimited monthly plan. + +### ⚠️ Runway errors out saying that there are more than one face in the footage or they are too close together. + +### ⚠️ When using the model "runwayml/stable-diffusion-v1-5" on a SageMaker p2.XL instance, AWS starts downloading the model and after a few minutes crashes with error "OSError: [Errno 28] No space left on device" even after increasing the volume size from 5GB to 30GB. + +### ⚠️ subprocess.CalledProcessError: Command '['C:\Users\xande\Desktop\SkynetScribbles\kohya_ss\venv\Scripts\python.exe', './train_network.py', '--enable_bucket', '--min_bucket_reso=256', '--max_bucket_reso=2048', '--pretrained_model_name_or_path=runwayml/stable-diffusion-v1-5', '--train_data_dir=C:/Users/xande/Desktop/SkynetScribbles/Training Images/Ro' + +### ⚠️ RunwayML does a decent job of animating Dall-E 3 images but they don't seem to have an API. ## Cost & Limits -### 💰 lol see the limit is 3 +### 💰 There was an issue on our end. Any used credits have been refunded (they may take a f -### 💰 Unlimited [$95/month] accounts +### 💰 daily_image_limit=3 diff --git a/models/video/runwayml/prompting.md b/models/video/runwayml/prompting.md index 749f278..b7b110a 100644 --- a/models/video/runwayml/prompting.md +++ b/models/video/runwayml/prompting.md @@ -1,15 +1,19 @@ # RunwayML Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques -- While throttling is bad, there's a reasonable workaround using automation (https://useapi.net/docs/articles/runway-bash). -- Use runwayml/stableiffusion-v1-5 as pretrained_model_name_or_path in training scripts +- Gen-3 Alpha is now generally available, previously only partners and testers. +- Runway brings 3D control to video generation. +- I think Sam is taking my image generation limit as expectation lol. lol see the limit is 3 +- Adobe partners with OpenAI, RunwayML & Pika for Premiere Pro. +- Runway brings 3D control to video generation +- RunwayML: Best KREA alternative for built-in timeline editing. ## Recommended Settings -- pretrained_model_name_or_path=runwayml/stable-diffusion-v1-5 +- model=runwayml/stable-diffusion-v1-5 ## Sources diff --git a/models/video/sora/cost_optimization.md b/models/video/sora/cost_optimization.md new file mode 100644 index 0000000..8dd4ac3 --- /dev/null +++ b/models/video/sora/cost_optimization.md @@ -0,0 +1,35 @@ +# Sora - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- 5 secs per video +- Sora video aspect ratio: 9:16 +- Sora video length limit: 5 seconds +- After free clips: 100 Microsoft Rewards points per video +- Free plan: 3 image generations per day +- Plus users get 1000 credits per month. +- Unlimited to all plus, team, and pro users (as per billing FAQ) +- Sora: $20 for 50 videos (or) $200 for 500 videos == $0.4 per video +- 10,000 credits for Sora pro plan +- 60 credits per generation (example from user) +- Free video generation: 10 clips per session +- Sora is available on the ChatGPT Plus or Pro plans +- Unlimited generations available for all paid tiers +- Cost: zero (so far) +- Table: | Resolution | Aspect Ratio | Credits | Total Generations | +|------------|----------------|---------|-------------------| +| 480p | 1:1 | 20 | 50 | +| 480p | 16:9/9:16 | 25 | 40 | +| 720p | 1:1 | 30 | 33 | +| 720p | 16:9/9:16 | 60 + +## Money-Saving Tips + +- You can generate up to 10 video clips for free; after that each video costs 100 Microsoft Rewards points +- Use unlimited generations available for all paid tiers (plus, team, pro users) +- Be aware that Sora video clips are currently limited to 5 seconds and 9:16 aspect ratio, suitable for TikTok and Instagram +- Use the Bing mobile app to access Sora’s free video generation feature +- If you need more than 3 image generations per day, consider upgrading to the PLUS plan + diff --git a/models/video/sora/metadata.json b/models/video/sora/metadata.json new file mode 100644 index 0000000..0ed1110 --- /dev/null +++ b/models/video/sora/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Sora", + "category": "video", + "last_updated": "2025-08-16T13:04:49.996421", + "extraction_timestamp": "2025-08-16T12:50:04.667498", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 380, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/sora/parameters.json b/models/video/sora/parameters.json new file mode 100644 index 0000000..832ec36 --- /dev/null +++ b/models/video/sora/parameters.json @@ -0,0 +1,29 @@ +{ + "service": "Sora", + "last_updated": "2025-08-16T13:04:49.318183", + "recommended_settings": { + "setting_0": { + "description": "Image input capabilities=Enabled" + } + }, + "cost_optimization": { + "tip_0": "5 secs per video", + "tip_1": "Sora video aspect ratio: 9:16", + "tip_2": "Sora video length limit: 5 seconds", + "tip_3": "After free clips: 100 Microsoft Rewards points per video", + "tip_4": "Free plan: 3 image generations per day", + "tip_5": "Plus users get 1000 credits per month.", + "unlimited_option": "Unlimited generations available for all paid tiers", + "pricing": "Sora: $20 for 50 videos (or) $200 for 500 videos == $0.4 per video", + "tip_8": "10,000 credits for Sora pro plan", + "tip_9": "60 credits per generation (example from user)", + "tip_10": "Free video generation: 10 clips per session", + "tip_11": "Sora is available on the ChatGPT Plus or Pro plans", + "tip_12": "Cost: zero (so far)", + "tip_13": "Table: | Resolution | Aspect Ratio | Credits | Total Generations |\n|------------|----------------|---------|-------------------|\n| 480p | 1:1 | 20 | 50 |\n| 480p | 16:9/9:16 | 25 | 40 |\n| 720p | 1:1 | 30 | 33 |\n| 720p | 16:9/9:16 | 60" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/sora/pitfalls.md b/models/video/sora/pitfalls.md new file mode 100644 index 0000000..8a590c7 --- /dev/null +++ b/models/video/sora/pitfalls.md @@ -0,0 +1,16 @@ +# Sora - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Cost & Limits + +### 💰 Sora free plan limits image generation to 3 generations per day + +### 💰 Sora video generation is limited to 5 seconds in length and a vertical 9:16 aspect ratio + +### 💰 Sora video length limit: 5 seconds + +### 💰 Unlimited to all plus, team, and pro users (as per billing FAQ) + +### 💰 Unlimited generations available for all paid tiers + diff --git a/models/video/sora/prompting.md b/models/video/sora/prompting.md new file mode 100644 index 0000000..72bb40c --- /dev/null +++ b/models/video/sora/prompting.md @@ -0,0 +1,31 @@ +# Sora Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- You can generate up to 10 video clips for free; after that each video costs 100 Microsoft Rewards points +- Output specs: 1080p max, MP4 only, silent by default +- Generate 2x20 second videos at 720P for higher resolution base generations +- Use unlimited generations available for all paid tiers (plus, team, pro users) +- Use relaxed mode for faster waiting times (as experienced in Australia) +- Generate 4x20 second videos at 480P for maximum variations and then upscale the ones you like +- Queue up to three video generations at a time to keep the process efficient +- Be aware that Sora video clips are currently limited to 5 seconds and 9:16 aspect ratio, suitable for TikTok and Instagram +- 20s length cap (and why it's enforced) +- Use the Bing mobile app to access Sora’s free video generation feature +- If you need more than 3 image generations per day, consider upgrading to the PLUS plan +- There is an 8k dongle released recently to enable the 8k polling rate. +- or sora if you are in the eu, it is available on altstore pal. +- Resolution workarounds: upscale v +- Install the Betterjoy controller drivers for your PC via: https://github.com/Davidobot/BetterJoy +- I log into Sora, queue up the clips I need, then use the Chrome extension Video DownloadHelper to snag the MP4s. This gives me a bottomless library of short AI videos I can drop into product demos and social ads. + +## Recommended Settings + +- Image input capabilities=Enabled + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/src/cli.py b/src/cli.py index 21c3820..7e93cf1 100644 --- a/src/cli.py +++ b/src/cli.py @@ -384,14 +384,13 @@ async def _discover(): @scrape.command(name="targeted") @click.option("--service", "-s", help="Target specific service") @click.option("--category", "-c", help="Target services by category (video, audio, etc)") -@click.option("--limit", "-l", default=20, help="Max posts per search") -@click.option("--batch-size", "-b", default=50, help="Posts per LLM batch") +@click.option("--limit", "-l", default=20, help="Max posts per search (default: 20)") +@click.option("--priority", type=click.Choice(['ultra', 'critical', 'high', 'all']), default='all', help="Service priority level") +@click.option("--query-limit", "-q", default=20, help="Number of query patterns per service (default: 20, max: 20)") +@click.option("--parallel", default=3, help="Number of parallel scraping tasks") @click.option("--dry-run", is_flag=True, help="Show queries without running") -@click.option("--all", "run_all", is_flag=True, help="Run all generated queries") -@click.option("--max-queries", "-m", default=10, help="Maximum queries to run (default: 10)") -@click.option("--parallel", "-p", default=3, help="Number of parallel scraping tasks") -@click.option("--use-all-patterns", is_flag=True, help="Use ALL 20 search patterns instead of just 5 (uses all 4 patterns from each category: cost, optimization, technical, workarounds, bugs)") -def targeted_scrape(service, category, limit, batch_size, dry_run, run_all, max_queries, parallel, use_all_patterns): +def targeted_scrape(service, category, limit, priority, query_limit, parallel, dry_run): + """Run targeted searches for specific AI services.""" show_banner() @@ -406,7 +405,8 @@ async def _targeted(): from datetime import datetime # Access outer scope variables - nonlocal service, category, limit, batch_size, dry_run, run_all, max_queries, parallel, use_all_patterns + nonlocal service, category, limit, priority, query_limit, parallel, dry_run + # Generate targeted searches generator = TargetedSearchGenerator() @@ -415,17 +415,23 @@ async def _targeted(): if service and not category: # Just generate queries for the requested service - don't generate for all services first console.print(f"[cyan]Generating queries for {service}...[/cyan]") + use_all_patterns = query_limit >= 20 # Use all patterns if query_limit is 20 or more if use_all_patterns: console.print(f"[yellow]Using ALL patterns (20 total search queries)[/yellow]") - queries = generator.generate_queries_for_service(service, max_queries=max_queries, use_all_patterns=use_all_patterns) + else: + console.print(f"[yellow]Using {query_limit} query patterns[/yellow]") + queries = generator.generate_queries_for_service(service, max_queries=query_limit, use_all_patterns=use_all_patterns) + if not queries: console.print(f"[red]Could not generate queries for service: {service}[/red]") return else: # Generate queries based on category or all services + use_all_patterns = query_limit >= 20 # Use all patterns if query_limit is 20 or more all_queries = generator.generate_queries( - max_queries=100 if run_all else max_queries, + max_queries=1000, # Get all services + category_filter=category if category else None, use_all_patterns=use_all_patterns ) @@ -435,9 +441,13 @@ async def _targeted(): console.print("[yellow]No matching queries found[/yellow]") return - # Limit queries if not running all - if not run_all and len(queries) > max_queries: - queries = queries[:max_queries] + # Apply priority filter if specified + if priority != 'all': + queries = [q for q in queries if q.get('priority', 'all') == priority or priority == 'all'] + + # Limit queries to query_limit + if len(queries) > query_limit: + queries = queries[:query_limit] console.print(f"[cyan]Generated {len(queries)} targeted searches[/cyan]") @@ -622,11 +632,13 @@ async def process_query(query, scraper, batch_processor, llm, semaphore): @scrape.command(name="batch") @click.option("--category", "-c", help="Target services by category (video, audio, etc)") -@click.option("--limit", "-l", default=15, help="Max posts per search (default: 15)") -@click.option("--max-services", "-m", default=3, help="Maximum number of services to process (default: 3)") -@click.option("--priority", "-p", type=click.Choice(['ultra', 'critical', 'high', 'all']), default='ultra', help="Service priority level") -def batch_scrape(category, limit, max_services, priority): - """Batch process multiple high-priority services.""" +@click.option("--limit", "-l", default=20, help="Max posts per search (default: 20)") +@click.option("--priority", type=click.Choice(['ultra', 'critical', 'high', 'all']), default='all', help="Service priority level") +@click.option("--query-limit", "-q", default=20, help="Number of query patterns per service (default: 20, max: 20)") +@click.option("--batch-size", "-b", default=3, help="Number of services to process in parallel per batch (default: 3)") +@click.option("--dry-run", is_flag=True, help="Show what would be processed without running") +def batch_scrape(category, limit, priority, query_limit, batch_size, dry_run): + """Batch process all services in a category (or all services) in parallel batches.""" show_banner() async def _batch(): @@ -645,10 +657,12 @@ async def _batch(): generator = TargetedSearchGenerator() alias_manager = ServiceAliasManager() - # Generate queries for multiple services + # Generate queries for all services in category + use_all_patterns = query_limit >= 20 # Use all patterns if query_limit is 20 or more all_queries = generator.generate_queries( - max_queries=max_services * 5, # 5 query types per service - category_filter=category + max_queries=1000, # High limit to get all services + category_filter=category, + use_all_patterns=use_all_patterns ) # Filter by priority if specified @@ -663,13 +677,20 @@ async def _batch(): queries_by_service[service] = [] queries_by_service[service].append(query) - # Limit to max_services - services_to_process = list(queries_by_service.keys())[:max_services] + # Get all services (no limiting) + services_to_process = list(queries_by_service.keys()) console.print(f"[cyan]Processing {len(services_to_process)} services:[/cyan]") + console.print(f"[yellow]Using {query_limit} query patterns per service[/yellow]") for service in services_to_process: + # Limit queries per service based on query_limit + queries_by_service[service] = queries_by_service[service][:query_limit] console.print(f" • {service} ({len(queries_by_service[service])} queries)") + if dry_run: + console.print("\n[yellow]DRY RUN - Would process these services[/yellow]") + return + if not Confirm.ask(f"\n[yellow]Process {len(services_to_process)} services?[/yellow]", default=True): console.print("[red]Cancelled[/red]") return @@ -681,7 +702,7 @@ async def _batch(): all_results = [] - # Process each service + # Process services in batches with Progress( SpinnerColumn(), TextColumn("[progress.description]{task.description}"), @@ -691,30 +712,43 @@ async def _batch(): console=console, ) as progress: total_queries = sum(len(queries_by_service[s]) for s in services_to_process) - task = progress.add_task(f"Processing {len(services_to_process)} services...", total=total_queries) + task = progress.add_task(f"Processing {len(services_to_process)} services in batches of {batch_size}...", total=total_queries) - for service in services_to_process: - service_queries = queries_by_service[service] - progress.update(task, description=f"Processing {service}...") + # Process services in batches + for batch_start in range(0, len(services_to_process), batch_size): + batch_end = min(batch_start + batch_size, len(services_to_process)) + batch_services = services_to_process[batch_start:batch_end] - for query in service_queries: - try: - posts = await scraper.scrape(query['query_url'], max_posts=limit) - - if posts: - # Batch process with LLM - batches = batch_processor.batch_posts_by_tokens(posts, service) + console.print(f"\n[cyan]Processing batch {batch_start//batch_size + 1}: {', '.join(batch_services)}[/cyan]") + + # Process all services in this batch + for service in batch_services: + service_queries = queries_by_service[service] + progress.update(task, description=f"Processing {service}...") + + for query in service_queries: + try: + posts = await scraper.scrape(query['query_url'], max_posts=limit) - for batch in batches: - result = await batch_processor.process_batch(batch, service, llm) - all_results.append(result) - - progress.update(task, advance=1) - await asyncio.sleep(1) # Rate limiting - - except Exception as e: - logger.error(f"Failed to process {service}: {e}") - progress.update(task, advance=1) + if posts: + # Batch process with LLM + batches = batch_processor.batch_posts_by_tokens(posts, service) + + for batch in batches: + result = await batch_processor.process_batch(batch, service, llm) + all_results.append(result) + + progress.update(task, advance=1) + await asyncio.sleep(1) # Rate limiting + + except Exception as e: + logger.error(f"Failed to process {service}: {e}") + progress.update(task, advance=1) + + # Add delay between batches if not the last batch + if batch_end < len(services_to_process): + console.print(f"[dim]Waiting 2 seconds before next batch...[/dim]") + await asyncio.sleep(2) # Save results timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') @@ -752,15 +786,13 @@ async def _batch(): @scrape.command(name="all") -@click.option('-l', '--limit', default=20, help='Max posts per search (default: 20)') -@click.option('-c', '--category', help='Filter by category (video, audio, code, etc)') -@click.option('-p', '--priority', - type=click.Choice(['ultra', 'critical', 'high', 'all']), - default='ultra', - help='Service priority level') +@click.option('--category', '-c', help='Filter by category (video, audio, code, etc)') +@click.option('--limit', '-l', default=20, help='Max posts per search (default: 20)') +@click.option('--priority', type=click.Choice(['ultra', 'critical', 'high', 'all']), default='all', help='Service priority level') +@click.option('--query-limit', '-q', default=20, help='Number of query patterns per service (default: 20, max: 20)') +@click.option('--delay', '-d', default=5, help='Delay in seconds between services (default: 5)') @click.option('--dry-run', is_flag=True, help='Show what would be processed without running') -@click.option('--delay', default=5, help='Delay in seconds between services (default: 5)') -def scrape_all(limit: int, category: str, priority: str, dry_run: bool, delay: int): +def scrape_all(category: str, limit: int, priority: str, query_limit: int, delay: int, dry_run: bool): """Process all priority services one by one.""" show_banner() @@ -830,7 +862,7 @@ def scrape_all(limit: int, category: str, priority: str, dry_run: bool, delay: i ['uv', 'run', 'scapo', 'scrape', 'targeted', '--service', service_name, '--limit', str(limit), - '--max-queries', '5'], + '--query-limit', str(query_limit)], capture_output=True, text=True ) From 552cf4ccb83689ab548e8f5df7c7877548d6046a Mon Sep 17 00:00:00 2001 From: arahangua Date: Sat, 16 Aug 2025 19:23:29 +0900 Subject: [PATCH 2/4] populated first round of models + improved retry logic + fixed mcp related documentation and proper npm registry packaging --- QUICKSTART.md | 30 +++- README.md | 26 ++-- mcp/README.md | 99 ++++++------- mcp/package-lock.json | 4 +- mcp/package.json | 6 +- mcp/usage-guide.md | 16 +-- models/code/coderabbit/metadata.json | 13 ++ models/code/coderabbit/prompting.md | 13 ++ models/code/flexapp/metadata.json | 13 ++ models/code/flexapp/pitfalls.md | 9 ++ models/code/flexapp/prompting.md | 20 +++ models/code/kiln/cost_optimization.md | 9 ++ models/code/kiln/metadata.json | 13 ++ models/code/kiln/parameters.json | 13 ++ models/code/kiln/pitfalls.md | 14 ++ models/code/kiln/prompting.md | 18 +++ models/code/kilo-code/cost_optimization.md | 23 +++ models/code/kilo-code/metadata.json | 13 ++ models/code/kilo-code/parameters.json | 42 ++++++ models/code/kilo-code/pitfalls.md | 32 +++++ models/code/kilo-code/prompting.md | 47 +++++++ models/code/mindstudio/metadata.json | 13 ++ models/code/mindstudio/pitfalls.md | 6 + models/code/openai-codex/cost_optimization.md | 14 ++ models/code/openai-codex/metadata.json | 13 ++ models/code/openai-codex/parameters.json | 44 ++++++ models/code/openai-codex/pitfalls.md | 20 +++ models/code/openai-codex/prompting.md | 28 ++++ models/code/wordware/cost_optimization.md | 8 ++ models/code/wordware/metadata.json | 13 ++ models/code/wordware/parameters.json | 12 ++ models/general/all/metadata.json | 13 -- models/general/all/prompting.md | 20 --- models/general/github-pages/metadata.json | 13 -- models/general/github-pages/prompting.md | 12 -- models/image/alpaca/cost_optimization.md | 14 ++ models/image/alpaca/metadata.json | 13 ++ models/image/alpaca/parameters.json | 13 ++ models/image/alpaca/pitfalls.md | 10 ++ models/image/alpaca/prompting.md | 15 ++ models/image/astria/cost_optimization.md | 8 ++ models/image/astria/metadata.json | 13 ++ models/image/astria/parameters.json | 37 +++++ models/image/astria/pitfalls.md | 10 ++ models/image/astria/prompting.md | 23 +++ models/image/civitai/metadata.json | 13 ++ models/image/civitai/parameters.json | 29 ++++ models/image/civitai/pitfalls.md | 14 ++ models/image/civitai/prompting.md | 24 ++++ models/image/dalle-2/cost_optimization.md | 11 ++ models/image/dalle-2/metadata.json | 13 ++ models/image/dalle-2/parameters.json | 29 ++++ models/image/dalle-2/pitfalls.md | 10 ++ models/image/dalle-2/prompting.md | 24 ++++ models/image/dreamstudio/cost_optimization.md | 8 ++ models/image/dreamstudio/metadata.json | 13 ++ models/image/dreamstudio/parameters.json | 12 ++ models/image/dreamstudio/pitfalls.md | 6 + models/image/dreamstudio/prompting.md | 19 +++ models/image/jasper/cost_optimization.md | 13 ++ models/image/jasper/metadata.json | 13 ++ models/image/jasper/parameters.json | 12 ++ models/image/jasper/pitfalls.md | 8 ++ models/image/jasper/prompting.md | 13 ++ models/image/leonardo-ai/cost_optimization.md | 13 ++ models/image/leonardo-ai/metadata.json | 13 ++ models/image/leonardo-ai/parameters.json | 24 ++++ models/image/leonardo-ai/pitfalls.md | 20 +++ models/image/leonardo-ai/prompting.md | 20 +++ models/image/letsenhance/cost_optimization.md | 10 ++ models/image/letsenhance/metadata.json | 13 ++ models/image/letsenhance/parameters.json | 14 ++ models/image/letsenhance/pitfalls.md | 6 + models/image/letsenhance/prompting.md | 13 ++ models/image/modyfi/cost_optimization.md | 8 ++ models/image/modyfi/metadata.json | 13 ++ models/image/modyfi/parameters.json | 12 ++ models/image/openart/cost_optimization.md | 9 ++ models/image/openart/metadata.json | 13 ++ models/image/openart/parameters.json | 13 ++ models/image/openart/prompting.md | 15 ++ models/image/phygital/cost_optimization.md | 8 ++ models/image/phygital/metadata.json | 13 ++ models/image/phygital/parameters.json | 12 ++ models/image/playform/metadata.json | 13 ++ models/image/playform/pitfalls.md | 8 ++ models/image/remini/cost_optimization.md | 9 ++ models/image/remini/metadata.json | 13 ++ models/image/remini/parameters.json | 13 ++ models/image/remini/pitfalls.md | 15 ++ models/image/remini/prompting.md | 12 ++ models/text/ai/metadata.json | 13 -- models/text/ai/prompting.md | 14 -- models/text/characterai/cost_optimization.md | 14 ++ models/text/characterai/metadata.json | 6 +- models/text/characterai/parameters.json | 17 ++- models/text/characterai/pitfalls.md | 14 +- models/text/characterai/prompting.md | 17 ++- models/text/fliki/cost_optimization.md | 15 +- models/text/fliki/metadata.json | 6 +- models/text/fliki/parameters.json | 9 +- models/text/fliki/pitfalls.md | 17 +++ models/text/fliki/prompting.md | 9 +- models/text/ideogram/cost_optimization.md | 10 +- models/text/ideogram/metadata.json | 6 +- models/text/ideogram/parameters.json | 6 +- models/text/ideogram/pitfalls.md | 8 +- models/text/ideogram/prompting.md | 13 +- models/text/resemble-ai/cost_optimization.md | 5 +- models/text/resemble-ai/metadata.json | 6 +- models/text/resemble-ai/parameters.json | 4 +- models/text/resemble-ai/prompting.md | 5 +- models/text/synthesia/metadata.json | 6 +- models/text/synthesia/pitfalls.md | 16 ++- models/text/synthesia/prompting.md | 15 +- models/video/klingai/cost_optimization.md | 15 ++ models/video/klingai/metadata.json | 13 ++ models/video/klingai/parameters.json | 35 +++++ models/video/klingai/pitfalls.md | 10 ++ models/video/klingai/prompting.md | 29 ++++ .../luma-dream-machine/cost_optimization.md | 8 ++ models/video/luma-dream-machine/metadata.json | 13 ++ .../video/luma-dream-machine/parameters.json | 12 ++ models/video/luma-dream-machine/pitfalls.md | 10 ++ src/cli.py | 91 +++++++++++- src/scrapers/service_discovery.py | 132 +++++++++++++++--- src/scrapers/targeted_search_generator.py | 9 +- src/services/batch_llm_processor.py | 124 ++++++++-------- 128 files changed, 1940 insertions(+), 299 deletions(-) create mode 100644 models/code/coderabbit/metadata.json create mode 100644 models/code/coderabbit/prompting.md create mode 100644 models/code/flexapp/metadata.json create mode 100644 models/code/flexapp/pitfalls.md create mode 100644 models/code/flexapp/prompting.md create mode 100644 models/code/kiln/cost_optimization.md create mode 100644 models/code/kiln/metadata.json create mode 100644 models/code/kiln/parameters.json create mode 100644 models/code/kiln/pitfalls.md create mode 100644 models/code/kiln/prompting.md create mode 100644 models/code/kilo-code/cost_optimization.md create mode 100644 models/code/kilo-code/metadata.json create mode 100644 models/code/kilo-code/parameters.json create mode 100644 models/code/kilo-code/pitfalls.md create mode 100644 models/code/kilo-code/prompting.md create mode 100644 models/code/mindstudio/metadata.json create mode 100644 models/code/mindstudio/pitfalls.md create mode 100644 models/code/openai-codex/cost_optimization.md create mode 100644 models/code/openai-codex/metadata.json create mode 100644 models/code/openai-codex/parameters.json create mode 100644 models/code/openai-codex/pitfalls.md create mode 100644 models/code/openai-codex/prompting.md create mode 100644 models/code/wordware/cost_optimization.md create mode 100644 models/code/wordware/metadata.json create mode 100644 models/code/wordware/parameters.json delete mode 100644 models/general/all/metadata.json delete mode 100644 models/general/all/prompting.md delete mode 100644 models/general/github-pages/metadata.json delete mode 100644 models/general/github-pages/prompting.md create mode 100644 models/image/alpaca/cost_optimization.md create mode 100644 models/image/alpaca/metadata.json create mode 100644 models/image/alpaca/parameters.json create mode 100644 models/image/alpaca/pitfalls.md create mode 100644 models/image/alpaca/prompting.md create mode 100644 models/image/astria/cost_optimization.md create mode 100644 models/image/astria/metadata.json create mode 100644 models/image/astria/parameters.json create mode 100644 models/image/astria/pitfalls.md create mode 100644 models/image/astria/prompting.md create mode 100644 models/image/civitai/metadata.json create mode 100644 models/image/civitai/parameters.json create mode 100644 models/image/civitai/pitfalls.md create mode 100644 models/image/civitai/prompting.md create mode 100644 models/image/dalle-2/cost_optimization.md create mode 100644 models/image/dalle-2/metadata.json create mode 100644 models/image/dalle-2/parameters.json create mode 100644 models/image/dalle-2/pitfalls.md create mode 100644 models/image/dalle-2/prompting.md create mode 100644 models/image/dreamstudio/cost_optimization.md create mode 100644 models/image/dreamstudio/metadata.json create mode 100644 models/image/dreamstudio/parameters.json create mode 100644 models/image/dreamstudio/pitfalls.md create mode 100644 models/image/dreamstudio/prompting.md create mode 100644 models/image/jasper/cost_optimization.md create mode 100644 models/image/jasper/metadata.json create mode 100644 models/image/jasper/parameters.json create mode 100644 models/image/jasper/pitfalls.md create mode 100644 models/image/jasper/prompting.md create mode 100644 models/image/leonardo-ai/cost_optimization.md create mode 100644 models/image/leonardo-ai/metadata.json create mode 100644 models/image/leonardo-ai/parameters.json create mode 100644 models/image/leonardo-ai/pitfalls.md create mode 100644 models/image/leonardo-ai/prompting.md create mode 100644 models/image/letsenhance/cost_optimization.md create mode 100644 models/image/letsenhance/metadata.json create mode 100644 models/image/letsenhance/parameters.json create mode 100644 models/image/letsenhance/pitfalls.md create mode 100644 models/image/letsenhance/prompting.md create mode 100644 models/image/modyfi/cost_optimization.md create mode 100644 models/image/modyfi/metadata.json create mode 100644 models/image/modyfi/parameters.json create mode 100644 models/image/openart/cost_optimization.md create mode 100644 models/image/openart/metadata.json create mode 100644 models/image/openart/parameters.json create mode 100644 models/image/openart/prompting.md create mode 100644 models/image/phygital/cost_optimization.md create mode 100644 models/image/phygital/metadata.json create mode 100644 models/image/phygital/parameters.json create mode 100644 models/image/playform/metadata.json create mode 100644 models/image/playform/pitfalls.md create mode 100644 models/image/remini/cost_optimization.md create mode 100644 models/image/remini/metadata.json create mode 100644 models/image/remini/parameters.json create mode 100644 models/image/remini/pitfalls.md create mode 100644 models/image/remini/prompting.md delete mode 100644 models/text/ai/metadata.json delete mode 100644 models/text/ai/prompting.md create mode 100644 models/text/characterai/cost_optimization.md create mode 100644 models/text/fliki/pitfalls.md create mode 100644 models/video/klingai/cost_optimization.md create mode 100644 models/video/klingai/metadata.json create mode 100644 models/video/klingai/parameters.json create mode 100644 models/video/klingai/pitfalls.md create mode 100644 models/video/klingai/prompting.md create mode 100644 models/video/luma-dream-machine/cost_optimization.md create mode 100644 models/video/luma-dream-machine/metadata.json create mode 100644 models/video/luma-dream-machine/parameters.json create mode 100644 models/video/luma-dream-machine/pitfalls.md diff --git a/QUICKSTART.md b/QUICKSTART.md index 12cffa9..474863e 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -23,6 +23,9 @@ cp .env.example .env LLM_PROVIDER=openrouter OPENROUTER_API_KEY=sk-or-v1-your-key-here # Get from openrouter.ai OPENROUTER_MODEL=your_model + +# IMPORTANT: Update model context cache for accurate batching +scapo update-context # Without this, defaults to 4096 tokens (poor performance!) ``` #### Option B: Ollama (Local) @@ -117,27 +120,27 @@ scapo models search "copilot" # Search for specific models cat models/audio/eleven-labs/cost_optimization.md ``` -### 5. (Optional) Use with Claude Desktop +### 5. (Optional) MCP Server - Query Your Extracted Tips + +**Important:** The MCP server only reads tips you've already extracted. Run scrapers first (Steps 3-4) to populate models/ folder! -Add SCAPO as an MCP server to query your extracted tips (from models/ folder) directly in Claude: +Add SCAPO as an MCP server to query your extracted tips directly in MCP-compatible clients: ```json -// Add to claude_desktop_config.json +// Add to config.json { "mcpServers": { "scapo": { "command": "npx", - "args": ["@scapo/mcp-server"], + "args": ["@arahangua/scapo-mcp-server"], "env": { - "SCAPO_MODELS_PATH": "path/to/scapo/models" + "SCAPO_MODELS_PATH": "/path/to/scapo/models" } } } } ``` -Then ask Claude: "Get best practices for Midjourney" - no Python needed! - ## 📊 Understanding the Output SCAPO creates organized documentation: @@ -151,6 +154,19 @@ models/ │ └── parameters.json # Recommended settings ``` +## ⚙️ Utility Commands + +```bash +# Update OpenRouter model context cache (for accurate batching) +scapo update-context # Updates if >24h old +scapo update-context -f # Force update + +# View extracted tips +scapo tui # Interactive TUI explorer +scapo models list # List all extracted models +scapo models search "copilot" # Search for specific models +``` + ## ⚙️ The --limit flag ```bash diff --git a/README.md b/README.md index 2506f5b..e382f31 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,13 @@ cp .env.example .env Get your API key from [openrouter.ai](https://openrouter.ai/) * you can also use local LLMs (Ollama, LMstudio). Check [QUICKSTART.md](./QUICKSTART.md) +#### Important: Update Model Context Cache (OpenRouter users) +```bash +# REQUIRED for optimal performance - fetches accurate token limits +scapo update-context # Creates cache for faster processing +``` +Without this, SCAPO defaults to 4096 tokens (severely limiting batch efficiency) + ### 3. Start Extracting Optimization Tips @@ -274,18 +281,17 @@ MAX_POSTS_PER_SCRAPE=100 # Limit per source ``` Hand-wavy breakdown: With 5 posts, extraction success ~20%. With 20+ posts, success jumps to ~80%. -## 🤖 MCP Server for Claude Desktop +## 🤖 MCP Server (Optional Reader) -Query your extracted tips directly in Claude (reads from models/ folder - run scrapers first!): +**Note:** The MCP server is a reader that queries your already-extracted tips. You must run SCAPO scrapers first to populate the models/ folder! ```json -// Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) -// or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) +// Add to your client's mcp config.json { "mcpServers": { "scapo": { "command": "npx", - "args": ["@scapo/mcp-server"], + "args": ["@arahangua/scapo-mcp-server"], "env": { "SCAPO_MODELS_PATH": "C:\\path\\to\\scapo\\models" // Your models folder } @@ -293,9 +299,6 @@ Query your extracted tips directly in Claude (reads from models/ folder - run sc } } ``` - -Then ask Claude: "Get me best practices for GitHub Copilot" or "What models are good for coding?" - See [mcp/README.md](mcp/README.md) for full setup and available commands. ## 🎨 Interactive TUI @@ -378,7 +381,12 @@ Built as part of the CZero Engine project to improve AI application development. - [OpenRouter](https://openrouter.ai/) for accessible AI APIs - Coffee ☕ for making this possible - [Ollama](https://ollama.com/) and [LMstudio](https://lmstudio.ai/) for awesome local LLM experience -- [Awesome Generative AI](https://github.com/steven2358/awesome-generative-ai) & [Awesome AI Tools](https://github.com/mahseema/awesome-ai-tools) for service discovery +- Service discovery powered by awesome lists: + - [steven2358/awesome-generative-ai](https://github.com/steven2358/awesome-generative-ai) + - [mahseema/awesome-ai-tools](https://github.com/mahseema/awesome-ai-tools) + - [filipecalegario/awesome-generative-ai](https://github.com/filipecalegario/awesome-generative-ai) + - [aishwaryanr/awesome-generative-ai-guide](https://github.com/aishwaryanr/awesome-generative-ai-guide) + - [eudk/awesome-ai-tools](https://github.com/eudk/awesome-ai-tools) - All opensource contributors in this space --- diff --git a/mcp/README.md b/mcp/README.md index 7064107..7c24046 100644 --- a/mcp/README.md +++ b/mcp/README.md @@ -1,62 +1,76 @@ # SCAPO MCP Server -A Model Context Protocol (MCP) server for querying AI/ML best practices from the SCAPO (Stay Calm and Prompt On) knowledge base. Features intelligent fuzzy matching for improved user experience when querying model information. +A Model Context Protocol (MCP) server that makes your locally-extracted SCAPO knowledge base queryable. + +⚠️ **This is a reader, not a scraper!** You must first use [SCAPO](https://github.com/czero-cc/scapo) to extract tips into your `models/` folder. ## Documentation For comprehensive usage instructions, examples, and technical details, please see the **[Usage Guide](usage-guide.md)**. -## Installation +## Prerequisites + +1. **Clone and set up SCAPO first**: + ```bash + git clone https://github.com/czero-cc/scapo.git + cd scapo + # Follow SCAPO setup to run scrapers and populate models/ + ``` + +2. **Required**: + - Node.js 18+ + - npm or npx + - Populated `models/` directory (from running SCAPO scrapers) + +## How It Works + +**IMPORTANT**: This MCP server ONLY reads from your local `models/` folder. It does NOT scrape data itself! + +1. First, use SCAPO to scrape and extract tips into `models/` +2. Then, this MCP server makes those tips queryable in your AI client -You can use this MCP server directly with `npx` (no Python required): +## Quick Start ```bash -npx @scapo/mcp-server +# Step 1: Set up SCAPO and extract tips +git clone https://github.com/czero-cc/scapo.git +cd scapo +# Follow SCAPO README to configure and run scrapers +scapo scrape targeted --service "GitHub Copilot" --limit 20 + +# Step 2: Configure MCP to read your extracted tips +# Add to your MCP client config with YOUR path to scapo/models/ ``` -Or install it globally: +## Installation ```bash -npm install -g @scapo/mcp-server +npx @arahangua/scapo-mcp-server ``` -## Usage with Claude Desktop - -Add this to your Claude Desktop configuration file: +## Configuration for MCP Clients -### Windows -Edit `%APPDATA%\Claude\claude_desktop_config.json`: +Add this to your MCP client's configuration: ```json { "mcpServers": { "scapo": { "command": "npx", - "args": ["@scapo/mcp-server"], + "args": ["@arahangua/scapo-mcp-server"], "env": { - "SCAPO_MODELS_PATH": "C:\\path\\to\\scapo\\models" + "SCAPO_MODELS_PATH": "/absolute/path/to/your/scapo/models" // From your cloned SCAPO repo! } } } } ``` -### macOS -Edit `~/Library/Application Support/Claude/claude_desktop_config.json`: +**Note:** Set `SCAPO_MODELS_PATH` to the absolute path of your SCAPO models directory. -```json -{ - "mcpServers": { - "scapo": { - "command": "npx", - "args": ["@scapo/mcp-server"], - "env": { - "SCAPO_MODELS_PATH": "/path/to/scapo/models" - } - } - } -} -``` +For Claude Desktop specifically: +- Windows: Edit `%APPDATA%\Claude\claude_desktop_config.json` +- macOS: Edit `~/Library/Application Support/Claude/claude_desktop_config.json` ## Available Tools @@ -89,7 +103,7 @@ List all available models by category. ``` Arguments: -- category: Model category ("text", "image", "video", "audio", "multimodal", "all") +- category: Model category ("text", "image", "video", "audio", "multimodal", "code", "all") ``` Example in Claude: @@ -114,12 +128,14 @@ Example in Claude: ## Features - **Intelligent Fuzzy Matching**: Handles typos, partial names, and variations automatically -- **No Python Required**: Pure Node.js implementation using npx + - Typo tolerance: `heygen` → "HeyGen", `gemeni` → "Gemini" + - Partial matching: `qwen` → finds all Qwen variants + - Case insensitive: `LLAMA-3` → "llama-3" - **Fully Standalone**: Works without any API server running - **Direct File Access**: Reads from local model files - **Smart Search**: Advanced search with similarity scoring - **Smart Recommendations**: Suggests models based on use case -- **Easy Integration**: Works seamlessly with Claude Desktop +- **Easy Integration**: Works with any MCP-compatible client - **Helpful Suggestions**: Provides alternatives when exact matches aren't found ## Use Cases @@ -150,24 +166,13 @@ models/ └── ... ``` -## Advantages Over Python Version - -1. **No Python Setup**: Works with just Node.js (which Claude Desktop already has) -2. **Simple npx Usage**: One command to run, no installation needed -3. **Better IDE Integration**: Works seamlessly with Cursor and other IDEs -4. **Faster Startup**: Node.js starts faster than Python -5. **Native JSON Handling**: Better performance for JSON operations - ## Contributing -To publish updates to npm: - -```bash -cd mcp -npm version patch # or minor/major -npm publish --access public -``` +To contribute improvements: +1. Fork the [SCAPO repository](https://github.com/czero-cc/SCAPO) +2. Make your changes in the `mcp/` directory +3. Submit a pull request ## License -Same as the parent SCAPO repository. \ No newline at end of file +Same as the parent [SCAPO](https://github.com/czero-cc/SCAPO) repository. \ No newline at end of file diff --git a/mcp/package-lock.json b/mcp/package-lock.json index 4e6ecad..4574a7c 100644 --- a/mcp/package-lock.json +++ b/mcp/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scapo/mcp-server", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scapo/mcp-server", - "version": "1.0.0", + "version": "1.0.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^0.5.0", diff --git a/mcp/package.json b/mcp/package.json index 81172a0..69cfaff 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -1,6 +1,6 @@ { - "name": "@scapo/mcp-server", - "version": "1.0.0", + "name": "@arahangua/scapo-mcp-server", + "version": "1.0.4", "description": "Stay Calm and Prompt On (SCAPO) - MCP server for AI/ML best practices", "main": "index.js", "type": "module", @@ -27,4 +27,4 @@ "engines": { "node": ">=18.0.0" } -} \ No newline at end of file +} diff --git a/mcp/usage-guide.md b/mcp/usage-guide.md index d6c66fc..049f947 100644 --- a/mcp/usage-guide.md +++ b/mcp/usage-guide.md @@ -13,15 +13,11 @@ The SCAPO MCP (Model Context Protocol) server provides intelligent access to AI/ ### Installation ```bash -# Clone the repository -git clone https://github.com/your-org/scapo.git -cd scapo/mcp +# After installing SCAPO, the MCP server can be used directly +npx @arahangua/scapo-mcp-server -# Install dependencies -npm install - -# Or run directly with npx (no installation needed) -npx @scapo/mcp-server +# Or install globally +npm install -g @arahangua/scapo-mcp-server ``` ### Basic Setup @@ -43,8 +39,8 @@ npm start { "mcpServers": { "scapo": { - "command": "node", - "args": ["/path/to/scapo/mcp/index.js"], + "command": "npx", + "args": ["@arahangua/scapo-mcp-server"], "env": { "SCAPO_MODELS_PATH": "/path/to/scapo/models" } diff --git a/models/code/coderabbit/metadata.json b/models/code/coderabbit/metadata.json new file mode 100644 index 0000000..a90fa1e --- /dev/null +++ b/models/code/coderabbit/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "CodeRabbit", + "category": "code", + "last_updated": "2025-08-16T18:29:24.327526", + "extraction_timestamp": "2025-08-16T18:10:37.657193", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 104, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/coderabbit/prompting.md b/models/code/coderabbit/prompting.md new file mode 100644 index 0000000..6be9c0e --- /dev/null +++ b/models/code/coderabbit/prompting.md @@ -0,0 +1,13 @@ +# CodeRabbit Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Read more here: https://coderabbit.ai/blog/coderabbit-openai-rate-limits +- This blog discusses how CodeRabbit uses FluxNinja Aperture to manage OpenAI’s limits and ensure optimal operation even during peak load. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/code/flexapp/metadata.json b/models/code/flexapp/metadata.json new file mode 100644 index 0000000..66c1ed9 --- /dev/null +++ b/models/code/flexapp/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "FlexApp", + "category": "code", + "last_updated": "2025-08-16T18:29:24.858720", + "extraction_timestamp": "2025-08-16T18:15:53.143001", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 128, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/flexapp/pitfalls.md b/models/code/flexapp/pitfalls.md new file mode 100644 index 0000000..f7d8e01 --- /dev/null +++ b/models/code/flexapp/pitfalls.md @@ -0,0 +1,9 @@ +# FlexApp - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Policy & Account Issues + +### ⚠️ on the Flex app it says 'Resolve other account, this may take 24 hours' +**Note**: Be aware of terms of service regarding account creation. + diff --git a/models/code/flexapp/prompting.md b/models/code/flexapp/prompting.md new file mode 100644 index 0000000..0c511b6 --- /dev/null +++ b/models/code/flexapp/prompting.md @@ -0,0 +1,20 @@ +# FlexApp Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Resolve package itinerary issue by contacting station manager to remove package from itinerary. +- Just redownloaded it to check and it works now. False alarm lol +- Use airplane mode to solve lag in Flex app. +- When I wanted to build the FlexApp, I built the initial working prototype within 4 days and launched on Twitter for waitlist. +- Avoid using Stride app while scanning packages to prevent performance degradation. +- So now Flex wants us to update our vehicle fuel type to ensure we receive offers best suited for our vehicles. (Gasoline, diesel, hybrid, and electric) +- I had to call support 5 times to have them mark packages as delivered. +- Flex 3 beta includes a Trending tab showing most popular downloads of last 24 hours. +- Download Flex 3 beta from http://getdelta.co. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/code/kiln/cost_optimization.md b/models/code/kiln/cost_optimization.md new file mode 100644 index 0000000..83c4c5c --- /dev/null +++ b/models/code/kiln/cost_optimization.md @@ -0,0 +1,9 @@ +# Kiln - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Sadly if i want to set Ethereum to the Staking Pool it needs a fee of 0,038 (!) ethereum which is a lot. +- fee of 0,038 ethereum + diff --git a/models/code/kiln/metadata.json b/models/code/kiln/metadata.json new file mode 100644 index 0000000..e181edb --- /dev/null +++ b/models/code/kiln/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Kiln", + "category": "code", + "last_updated": "2025-08-16T18:29:24.579659", + "extraction_timestamp": "2025-08-16T18:12:59.239428", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 358, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/kiln/parameters.json b/models/code/kiln/parameters.json new file mode 100644 index 0000000..e9cdbf4 --- /dev/null +++ b/models/code/kiln/parameters.json @@ -0,0 +1,13 @@ +{ + "service": "Kiln", + "last_updated": "2025-08-16T18:29:24.454944", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Sadly if i want to set Ethereum to the Staking Pool it needs a fee of 0,038 (!) ethereum which is a lot.", + "tip_1": "fee of 0,038 ethereum" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/code/kiln/pitfalls.md b/models/code/kiln/pitfalls.md new file mode 100644 index 0000000..3f9d9d3 --- /dev/null +++ b/models/code/kiln/pitfalls.md @@ -0,0 +1,14 @@ +# Kiln - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ Kiln and hunting cabin reduce each other's cultivation area; bug with forest density; no ETA on fix. + +### ⚠️ Kilns overlapping and not working, clipped orchards, etc due to forest density bug. + +## Cost & Limits + +### 💰 I can't figure out how to get out of "SIMULATION MODE" in this [GitHub - jbruce12000/kiln-controller: Turns a Raspberry Pi into an inexpensive, web-enabled kiln controller.](https://github.com/jbruce12000/kiln-controller) I have tried every which way. I know I'm probably skipping a step, or misunderstanding a step. Everything has been wired correctly and tested. Has anyone but stuck at this step too? u/jbruce12000 I need help.... + diff --git a/models/code/kiln/prompting.md b/models/code/kiln/prompting.md new file mode 100644 index 0000000..fd58185 --- /dev/null +++ b/models/code/kiln/prompting.md @@ -0,0 +1,18 @@ +# Kiln Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Auto-compounding is a key feature i don't want to miss. +- After updating Ubuntu and rebooting, Kiln can get stuck with the message: 'Gathering baker data...Some information will be temporarily unavailable as Kiln gathers information from the blockchain. This can take up to a few hours. Kiln will gather new data about this baker in the background at the ...' and may take up to a few hours to complete. +- Topic-trees: generate a nested topic tree to build content breadth. +- Great UI: our one-click apps for Mac and Windows provide a really nice UX for synthetic data generation. +- I was looking forward to stake pooled on Kiln via Ledger Live since i like that it is auto-compounding which is a key feature i don't want to miss. +- Besides of this it matched the most what i was looking for since the APY is good and as said its compounding. +- Stake pooled on Kiln via Ledger Live. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/code/kilo-code/cost_optimization.md b/models/code/kilo-code/cost_optimization.md new file mode 100644 index 0000000..4e4d03a --- /dev/null +++ b/models/code/kilo-code/cost_optimization.md @@ -0,0 +1,23 @@ +# Kilo Code - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Kilo Code now supports OpenAI's new open-source models: GPT OSS 20B (131k context window) and GPT OSS 120B (151k context window). The 120B version charges $0.15/M for input tokens and $0.60/M for output tokens. +- Openrouter doc states that purchasing at least 10 credits increases daily limit to 1000 :free model requests per day. +- $20 subscription gives ~ $40 worth usage, 1000 o3 requests +- Kilo just broke 1 trillion tokens/month +- After three calls to Claude 4 Sonnet in Kilo Code, $1.50 was used, indicating high cost per request. +- Kilo Code covers all costs for premium models during the workshop, allowing use of Claude Opus 4, Gemini 2.5 Pro, GPT-4.1, and other premium models completely free of charge. +- No monthly minimums or hidden fees +- 300% bonus credits on the next 500 top ups + +## Money-Saving Tips + +- Flexible Credit Management: Control exactly when your balance reloads from your payment method—no monthly minimums or hidden fees +- Use OpenRouter to set up Claude 4 in Kilo Code to avoid rate limiting +- If you purchase at least 10 credits on Openrouter, your daily limit is increased to 1000 :free model requests per day, which applies to Kilo Code. +- Use Openrouter API with at least $10 credits to increase daily limit to 1000 :free model requests per day for Kilo Code. +- Set up Claude 4 through Openrouter to avoid immediate rate limiting in Kilo Code. + diff --git a/models/code/kilo-code/metadata.json b/models/code/kilo-code/metadata.json new file mode 100644 index 0000000..4392cc5 --- /dev/null +++ b/models/code/kilo-code/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Kilo Code", + "category": "code", + "last_updated": "2025-08-16T18:29:25.127674", + "extraction_timestamp": "2025-08-16T18:18:16.158336", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 138, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/kilo-code/parameters.json b/models/code/kilo-code/parameters.json new file mode 100644 index 0000000..b7a9605 --- /dev/null +++ b/models/code/kilo-code/parameters.json @@ -0,0 +1,42 @@ +{ + "service": "Kilo Code", + "last_updated": "2025-08-16T18:29:24.997151", + "recommended_settings": { + "setting_0": { + "description": "profile=Nano" + }, + "setting_1": { + "description": "model=GPT-4.1-Nano" + }, + "setting_2": { + "description": "global_shortcut=Cmd+Shift+A (Mac) or Ctrl+Shift+A (Windows)" + }, + "setting_3": { + "description": "indexer=built-in" + }, + "setting_4": { + "description": "llama.cpp=server_mode" + }, + "setting_5": { + "description": "embedder=nomic-embed-code" + }, + "setting_6": { + "description": "vector_db=Qdrant_Docker" + }, + "setting_7": { + "description": "api_key_source=build.nvidia.com" + } + }, + "cost_optimization": { + "pricing": "After three calls to Claude 4 Sonnet in Kilo Code, $1.50 was used, indicating high cost per request.", + "tip_1": "Openrouter doc states that purchasing at least 10 credits increases daily limit to 1000 :free model requests per day.", + "tip_2": "Kilo just broke 1 trillion tokens/month", + "tip_3": "Kilo Code covers all costs for premium models during the workshop, allowing use of Claude Opus 4, Gemini 2.5 Pro, GPT-4.1, and other premium models completely free of charge.", + "tip_4": "No monthly minimums or hidden fees", + "tip_5": "300% bonus credits on the next 500 top ups" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/code/kilo-code/pitfalls.md b/models/code/kilo-code/pitfalls.md new file mode 100644 index 0000000..76e50f3 --- /dev/null +++ b/models/code/kilo-code/pitfalls.md @@ -0,0 +1,32 @@ +# Kilo Code - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ I am trying to Kilo code with its api, I just load money in it but I cannot use it properly, it only used 25.2k contenct lenght but always trow and too large error. I do not included even a picture because apperantly picture causes a bigger problems. Please fix this or help me if I am doing something wrong. + +### ⚠️ API Request Failed error 9 when using Claude 3.7 in Kilo Code. + +### ⚠️ I was using rooCode, cline and KiloCode . I put all my api keys but it was not working. After 2 prompts it will leave a message of 401 error dont know why? I was even using free models help me please +**Fix**: Store API keys in environment variables or use a secrets manager. + +### ⚠️ Terminal empty command bugs + +### ⚠️ Hi. Having problem with kilo code. Here the error : + +Requested token count exceeds the model's maximum context length of 98304 tokens. You requested a total of 104096 tokens: 71328 tokens from the input messages and 32768 tokens for the completion. Please reduce the number of tokens in the input messages or the completion to fit within the limit. + + +I handling large project . I already try to only allow 500text per read to reduce input token. But somehow got problem with output token. How to ma + +## Cost & Limits + +### 💰 Rate limited when using Claude 4 in Kilo Code + +### 💰 429 Rate limit encountered when using free LLM in Kilo Code. + +### 💰 Rate limits of 10 requests per minute when using Gemini 2.5 Flash in Kilo Code. + +### 💰 Openrouter doc states that purchasing at least 10 credits increases daily limit to 1000 :free model requests per day. + diff --git a/models/code/kilo-code/prompting.md b/models/code/kilo-code/prompting.md new file mode 100644 index 0000000..13e609f --- /dev/null +++ b/models/code/kilo-code/prompting.md @@ -0,0 +1,47 @@ +# Kilo Code Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Get Your API Key: Visit https://build.nvidia.com/settings/api-keys to generate you +- Activate Kilo Code from anywhere with Cmd+Shift+A (Mac) or Ctrl+Shift+A (Windows) +- Flexible Credit Management: Control exactly when your balance reloads from your payment method—no monthly minimums or hidden fees +- Run llama.cpp in server mode (OpenAI-compatible API) for local inference +- Deploy Qdrant in Docker as the vector DB with cosine similarity +- I pay $20 and I get ~ $40 worth of AI usage (1000 o3 requests) +- Qdrant (Docker) as the vector DB (cosine) +- Use custom keyboard shortcuts for accepting suggestions +- Create a new config profile called 'Nano' that uses GPT-4.1-Nano instead of Claude 3.7 Sonnet to speed up the Enhance Prompt feature +- Use OpenRouter to set up Claude 4 in Kilo Code to avoid rate limiting +- If you purchase at least 10 credits on Openrouter, your daily limit is increased to 1000 :free model requests per day, which applies to Kilo Code. +- Kilo Code with built-in indexer +- Use Cmd+I for quick inline tasks directly in your editor - select code, describe what you want, get AI suggestions without breaking flow +- Configure the Enhance Prompt feature to use a different model (e.g., GPT-4.1-Nano) than your main coding tasks +- Use the MCP Marketplace to install AI capabilities with a single click +- When using Claude 4 in Kilo Code, note that the :thinking variety is not selectable. +- Use Kilo Code's built-in indexer for local-first codebase indexing +- Use Cmd+L: "Let Kilo Decide" - AI automatically suggests obvious improvements based on context +- llama.cpp in server mode (OpenAI-compatible API) +- Use nomic-embed-code (GGUF, Q6_K_L) as the embedder for 3,584-dim embeddings +- Enable system notifications to never miss approval requests even when the editor is minimized +- Use Openrouter API with at least $10 credits to increase daily limit to 1000 :free model requests per day for Kilo Code. +- nomic-embed-code (GGUF, Q6_K_L) as the embedder (3,584-dim) +- Local-first codebase indexing can be achieved by using Kilo Code with built-in indexer, llama.cpp server mode, nomic-embed-code, and Qdrant Docker. +- Set up Claude 4 through Openrouter to avoid immediate rate limiting in Kilo Code. + +## Recommended Settings + +- profile=Nano +- model=GPT-4.1-Nano +- global_shortcut=Cmd+Shift+A (Mac) or Ctrl+Shift+A (Windows) +- indexer=built-in +- llama.cpp=server_mode +- embedder=nomic-embed-code +- vector_db=Qdrant_Docker +- api_key_source=build.nvidia.com + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/code/mindstudio/metadata.json b/models/code/mindstudio/metadata.json new file mode 100644 index 0000000..2027a56 --- /dev/null +++ b/models/code/mindstudio/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "MindStudio", + "category": "code", + "last_updated": "2025-08-16T18:29:25.398108", + "extraction_timestamp": "2025-08-16T18:22:32.004848", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 72, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/mindstudio/pitfalls.md b/models/code/mindstudio/pitfalls.md new file mode 100644 index 0000000..b70a63a --- /dev/null +++ b/models/code/mindstudio/pitfalls.md @@ -0,0 +1,6 @@ +# MindStudio - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +*No major issues reported yet. This may indicate limited community data.* + diff --git a/models/code/openai-codex/cost_optimization.md b/models/code/openai-codex/cost_optimization.md new file mode 100644 index 0000000..d8deeec --- /dev/null +++ b/models/code/openai-codex/cost_optimization.md @@ -0,0 +1,14 @@ +# OpenAI Codex - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- One-time/USD +- $200 plan on OpenAI Codex +- included in a Pro subscription with no visible rate limits +- pushed past $200 worth of usage in a day, running multiple coding tasks in parallel without slowdown +- pushed past $200 worth of usage in a day +- effectively becomes free for targeted tasks that would normally rack up API fees +- Included in a Pro subscription with no visible rate limits + diff --git a/models/code/openai-codex/metadata.json b/models/code/openai-codex/metadata.json new file mode 100644 index 0000000..1f433e5 --- /dev/null +++ b/models/code/openai-codex/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "OpenAI Codex", + "category": "code", + "last_updated": "2025-08-16T18:29:23.810555", + "extraction_timestamp": null, + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 172, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/openai-codex/parameters.json b/models/code/openai-codex/parameters.json new file mode 100644 index 0000000..1a580a6 --- /dev/null +++ b/models/code/openai-codex/parameters.json @@ -0,0 +1,44 @@ +{ + "service": "OpenAI Codex", + "last_updated": "2025-08-16T18:29:23.687512", + "recommended_settings": { + "setting_0": { + "description": "model=your-kobold-model" + }, + "setting_1": { + "description": "provider=kobold" + }, + "setting_2": { + "description": "providers.kobold.name=Kobold" + }, + "setting_3": { + "description": "providers.kobold.baseURL=http://localhost:5001/v1" + }, + "setting_4": { + "description": "providers.kobold.envKey=KOBOLD_API_KEY" + }, + "setting_5": { + "description": "config_path=~/.codex/config.json" + }, + "setting_6": { + "description": "provider=ollama" + }, + "setting_7": { + "description": "model=deepseek-r1:1.5b" + }, + "setting_8": { + "description": "command=codex -p ollama -m deepseek-r1:1.5b" + } + }, + "cost_optimization": { + "tip_0": "One-time/USD", + "pricing": "pushed past $200 worth of usage in a day", + "tip_2": "included in a Pro subscription with no visible rate limits", + "tip_3": "effectively becomes free for targeted tasks that would normally rack up API fees", + "tip_4": "Included in a Pro subscription with no visible rate limits" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/code/openai-codex/pitfalls.md b/models/code/openai-codex/pitfalls.md new file mode 100644 index 0000000..6fe49e3 --- /dev/null +++ b/models/code/openai-codex/pitfalls.md @@ -0,0 +1,20 @@ +# OpenAI Codex - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ OpenAI Codex error: 'Your input exceeds the context window of this model. Please adjust your input and try again' + +## Cost & Limits + +### 💰 OpenAI Codex CLI usage limits reset every 5h and every week + +### 💰 You've hit usage your usage limit. Limits reset every 5h and every week. + +### 💰 Pro tier hits the weekly limit after just a couple days of single agent use + +### 💰 included in a Pro subscription with no visible rate limits + +### 💰 Included in a Pro subscription with no visible rate limits + diff --git a/models/code/openai-codex/prompting.md b/models/code/openai-codex/prompting.md new file mode 100644 index 0000000..3b08606 --- /dev/null +++ b/models/code/openai-codex/prompting.md @@ -0,0 +1,28 @@ +# OpenAI Codex Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- The codex CLI agent supports other providers and does not require OpenAI account settings, tokens, or registration cookie calls +- Use codex CLI with an OpenAI Plus/Pro subscription to access command-line GPT-5 without per-token billing. +- The clickable "Suggested task → Start task" buttons appear when you’re in a Codex Ask conversation that (a) is connected to a repository sandbox, and (b) ... +- Use the codex CLI agent with the --config option to set the model name and local Ollama port, e.g., codex --config model=ollama-model port=11434 +- clickable 'Suggested task → Start task' buttons appear when you're in a Codex Ask conversation that is connected to a repository sandbox + +## Recommended Settings + +- model=your-kobold-model +- provider=kobold +- providers.kobold.name=Kobold +- providers.kobold.baseURL=http://localhost:5001/v1 +- providers.kobold.envKey=KOBOLD_API_KEY +- config_path=~/.codex/config.json +- provider=ollama +- model=deepseek-r1:1.5b +- command=codex -p ollama -m deepseek-r1:1.5b + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/code/wordware/cost_optimization.md b/models/code/wordware/cost_optimization.md new file mode 100644 index 0000000..5c418ea --- /dev/null +++ b/models/code/wordware/cost_optimization.md @@ -0,0 +1,8 @@ +# Wordware - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Free/USD + diff --git a/models/code/wordware/metadata.json b/models/code/wordware/metadata.json new file mode 100644 index 0000000..f43997f --- /dev/null +++ b/models/code/wordware/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Wordware", + "category": "code", + "last_updated": "2025-08-16T18:29:24.061206", + "extraction_timestamp": "2025-08-16T18:09:34.011851", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 53, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/code/wordware/parameters.json b/models/code/wordware/parameters.json new file mode 100644 index 0000000..4b426f7 --- /dev/null +++ b/models/code/wordware/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Wordware", + "last_updated": "2025-08-16T18:29:23.935884", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Free/USD" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/general/all/metadata.json b/models/general/all/metadata.json deleted file mode 100644 index d5e0485..0000000 --- a/models/general/all/metadata.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "service": "All", - "category": "general", - "last_updated": "2025-08-14T19:35:32.580911", - "extraction_timestamp": "2025-08-14T19:35:32.580911", - "data_sources": [ - "Reddit API", - "Community discussions" - ], - "posts_analyzed": 0, - "confidence": "medium", - "version": "1.0.0" -} \ No newline at end of file diff --git a/models/general/all/prompting.md b/models/general/all/prompting.md deleted file mode 100644 index bf20f21..0000000 --- a/models/general/all/prompting.md +++ /dev/null @@ -1,20 +0,0 @@ -# All Prompting Guide - -*Last updated: 2025-08-14* - -## Tips & Techniques - -- Set temperature to 0.7 - temperature: 0.7 -- Set top_p to 0.95 - top_p: 0.95 -- Set steps to 50 - steps: 50 -- Set cfg to 7 - cfg: 7 -- Use a system prompt - include a system prompt to guide behavior -- Apply chain of thought - prompt the model to reason step-by-step -- Provide few-shot examples - include a few example inputs and outputs in the prompt -- Use streaming for slow responses - enable streaming mode to receive partial outputs -- Batch requests to reduce cost - send multiple prompts in a single API call - -## Sources - -- Reddit community discussions -- User-reported experiences diff --git a/models/general/github-pages/metadata.json b/models/general/github-pages/metadata.json deleted file mode 100644 index b6fd2ca..0000000 --- a/models/general/github-pages/metadata.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "service": "GitHub Pages", - "category": "general", - "last_updated": "2025-08-14T19:41:56.878095", - "extraction_timestamp": "2025-08-14T19:41:56.878095", - "data_sources": [ - "Reddit API", - "Community discussions" - ], - "posts_analyzed": 0, - "confidence": "medium", - "version": "1.0.0" -} \ No newline at end of file diff --git a/models/general/github-pages/prompting.md b/models/general/github-pages/prompting.md deleted file mode 100644 index 36c7278..0000000 --- a/models/general/github-pages/prompting.md +++ /dev/null @@ -1,12 +0,0 @@ -# GitHub Pages Prompting Guide - -*Last updated: 2025-08-14* - -## Tips & Techniques - -- Use GitHub Pages to host JSON data for transparency reports - Push a JSON file commit to a GitHub repository, enable GitHub Pages, and serve the JSON file as a static asset. - -## Sources - -- Reddit community discussions -- User-reported experiences diff --git a/models/image/alpaca/cost_optimization.md b/models/image/alpaca/cost_optimization.md new file mode 100644 index 0000000..2692c7c --- /dev/null +++ b/models/image/alpaca/cost_optimization.md @@ -0,0 +1,14 @@ +# Alpaca - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- 0 transaction cost (PFOF) +- $1000 per month platform fee + +## Money-Saving Tips + +- Alpaca is commission free. +- Speed. Can avoid rate-limit issues and its faster than an API request. Bypassing this bottle neck enables faster processing + diff --git a/models/image/alpaca/metadata.json b/models/image/alpaca/metadata.json new file mode 100644 index 0000000..ab66e47 --- /dev/null +++ b/models/image/alpaca/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Alpaca", + "category": "image", + "last_updated": "2025-08-16T17:49:37.392759", + "extraction_timestamp": null, + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 137, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/alpaca/parameters.json b/models/image/alpaca/parameters.json new file mode 100644 index 0000000..135492c --- /dev/null +++ b/models/image/alpaca/parameters.json @@ -0,0 +1,13 @@ +{ + "service": "Alpaca", + "last_updated": "2025-08-16T17:49:37.323180", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "0 transaction cost (PFOF)", + "pricing": "$1000 per month platform fee" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/alpaca/pitfalls.md b/models/image/alpaca/pitfalls.md new file mode 100644 index 0000000..27d09f6 --- /dev/null +++ b/models/image/alpaca/pitfalls.md @@ -0,0 +1,10 @@ +# Alpaca - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ My account was blocked from trading as im scalping stocks on Alpaca with 1 min charts. This error was returned. {"code":40310100,"message":"trade denied due to pattern day trading protection"} + +### ⚠️ ERROR: Error executing trade for MCD: {"code":40310000,"message":"account not eligible to trade uncovered option contracts"} despite having Level 3 options approval. + diff --git a/models/image/alpaca/prompting.md b/models/image/alpaca/prompting.md new file mode 100644 index 0000000..9f4ec34 --- /dev/null +++ b/models/image/alpaca/prompting.md @@ -0,0 +1,15 @@ +# Alpaca Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- why go through the hassle of setting up your own database and API when you can access someone else’s, like Alpaca’s? +- Alpaca is commission free. +- Speed. Can avoid rate-limit issues and its faster than an API request. Bypassing this bottle neck enables faster processing +- WestLake-7B-v2 (this time with the preferred Alpaca prompt format) + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/astria/cost_optimization.md b/models/image/astria/cost_optimization.md new file mode 100644 index 0000000..98a59b8 --- /dev/null +++ b/models/image/astria/cost_optimization.md @@ -0,0 +1,8 @@ +# Astria - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- $100 for a configuration that's better than mine. + diff --git a/models/image/astria/metadata.json b/models/image/astria/metadata.json new file mode 100644 index 0000000..d2af04f --- /dev/null +++ b/models/image/astria/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Astria", + "category": "image", + "last_updated": "2025-08-16T17:49:38.107465", + "extraction_timestamp": "2025-08-16T17:31:15.393602", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 163, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/astria/parameters.json b/models/image/astria/parameters.json new file mode 100644 index 0000000..74a8d2c --- /dev/null +++ b/models/image/astria/parameters.json @@ -0,0 +1,37 @@ +{ + "service": "Astria", + "last_updated": "2025-08-16T17:49:38.038921", + "recommended_settings": { + "setting_0": { + "description": "SDXL Steps=30" + }, + "setting_1": { + "description": "Size=768x1024" + }, + "setting_2": { + "description": "dpm++2m_karras=true" + }, + "setting_3": { + "description": "Film grain=true" + }, + "setting_4": { + "description": "Super-Resolution=true" + }, + "setting_5": { + "description": "Face Correct=true" + }, + "setting_6": { + "description": "Face swap=true" + }, + "setting_7": { + "description": "Inpaint Faces=true" + } + }, + "cost_optimization": { + "pricing": "$100 for a configuration that's better than mine." + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/astria/pitfalls.md b/models/image/astria/pitfalls.md new file mode 100644 index 0000000..d10e916 --- /dev/null +++ b/models/image/astria/pitfalls.md @@ -0,0 +1,10 @@ +# Astria - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ todays patch bugged out all equipment in the game. the one i had on me or in inventory and the new one i get from chests. if i go into item menu i see the stats (like +120 str, +21 mag) but when equipped no stats are added to the character. so basically u play without armour, weapon, helmet or shield. + +### ⚠️ So I'm getting a TypeError when I select the Astria ckpt file for text2img in my Stable Diffusion setup... I don't see any guides on using these model files, particularly for the Astria trained files. Am I missing something obvious here? + diff --git a/models/image/astria/prompting.md b/models/image/astria/prompting.md new file mode 100644 index 0000000..a4a7afe --- /dev/null +++ b/models/image/astria/prompting.md @@ -0,0 +1,23 @@ +# Astria Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Use the following Astria config: SDXL Steps: 30Size: 768x1024dpm++2m_karrasFilm grainSuper-ResolutionFace CorrectFace swapInpaint Faces + +## Recommended Settings + +- SDXL Steps=30 +- Size=768x1024 +- dpm++2m_karras=true +- Film grain=true +- Super-Resolution=true +- Face Correct=true +- Face swap=true +- Inpaint Faces=true + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/civitai/metadata.json b/models/image/civitai/metadata.json new file mode 100644 index 0000000..00931b7 --- /dev/null +++ b/models/image/civitai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "CivitAI", + "category": "image", + "last_updated": "2025-08-16T17:49:38.252539", + "extraction_timestamp": "2025-08-16T17:40:18.097614", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 130, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/civitai/parameters.json b/models/image/civitai/parameters.json new file mode 100644 index 0000000..309abca --- /dev/null +++ b/models/image/civitai/parameters.json @@ -0,0 +1,29 @@ +{ + "service": "CivitAI", + "last_updated": "2025-08-16T17:49:38.182838", + "recommended_settings": { + "setting_0": { + "description": "remote_api_tokens.url_regex=civitai.com" + }, + "setting_1": { + "description": "remote_api_tokens.token=11111111111111111111111111111111111" + }, + "setting_2": { + "description": "engine=kohya" + }, + "setting_3": { + "description": "unetLR=0.0001" + }, + "setting_4": { + "description": "clipSkip=1" + }, + "setting_5": { + "description": "loraType=lora" + } + }, + "cost_optimization": {}, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/civitai/pitfalls.md b/models/image/civitai/pitfalls.md new file mode 100644 index 0000000..824d7a3 --- /dev/null +++ b/models/image/civitai/pitfalls.md @@ -0,0 +1,14 @@ +# CivitAI - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ Whenever I have a CivitAI tab open in Chrome, even on a page with relatively few images, the CPU and memory usage goes through the roof. The website consumes more memory than Stable Diffusion itself does when generating. If the CivitAI tab is left open too long, after a while the PC will completely blue screen.. This happened more and more often until the PC crashed entirely. + +### ⚠️ Using civitai lora URLs with Replicate Flux Dev LoRA returns error: "Prediction failed. Command '['pget', 'https://civitai.com/api/download/models/947302?type=Model&format=SafeTensor&token=XXXXX']'" + +### ⚠️ Prediction failed. Command '['pget', 'https://civitai.com/api/download/models/947302?type=Model&format=SafeTensor&token=XXXXX'" when using civitai lora URLs with Replicate. + +### ⚠️ I've tried testing some CivitAI models, but when I try to generate images, the PC freezes and crashes. These models are around 20GB or more. My conclusion was that those models weren't made to run on my GPU, so I tried other model sizes around 11GB. They didn't work either, they give errors, but at least they don't freeze my PC. So far, only the 'flux1-dev-bnb-nf4-v2' mode + diff --git a/models/image/civitai/prompting.md b/models/image/civitai/prompting.md new file mode 100644 index 0000000..d744c73 --- /dev/null +++ b/models/image/civitai/prompting.md @@ -0,0 +1,24 @@ +# CivitAI Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Use civitdl v2.0.0 for batch downloading from CivitAI: pip install civitdl --upgrade. +- Finally, I realized that I was using the model page URL instead of the model ***download*** link 😅😝. +- Using wget or curl with the CivitAI API key to download models. +- CivitAI making style LoRAs with only 10 epochs and less than 1,000 steps + +## Recommended Settings + +- remote_api_tokens.url_regex=civitai.com +- remote_api_tokens.token=11111111111111111111111111111111111 +- engine=kohya +- unetLR=0.0001 +- clipSkip=1 +- loraType=lora + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/dalle-2/cost_optimization.md b/models/image/dalle-2/cost_optimization.md new file mode 100644 index 0000000..4c694d2 --- /dev/null +++ b/models/image/dalle-2/cost_optimization.md @@ -0,0 +1,11 @@ +# DALLE 2 - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- $6.52 for daily use limit +- Dalle-2 is > 1,000x as dollar efficient as hiring a human illustrator. +- $15 for 115 generation increments +- $6.52 for what has been up until now a daily use limit + diff --git a/models/image/dalle-2/metadata.json b/models/image/dalle-2/metadata.json new file mode 100644 index 0000000..ce471e6 --- /dev/null +++ b/models/image/dalle-2/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "DALLE 2", + "category": "image", + "last_updated": "2025-08-16T17:49:37.101723", + "extraction_timestamp": null, + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 113, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/dalle-2/parameters.json b/models/image/dalle-2/parameters.json new file mode 100644 index 0000000..5f836b9 --- /dev/null +++ b/models/image/dalle-2/parameters.json @@ -0,0 +1,29 @@ +{ + "service": "DALLE 2", + "last_updated": "2025-08-16T17:49:37.028423", + "recommended_settings": { + "setting_0": { + "description": "generation_increments=115" + }, + "setting_1": { + "description": "price_per_increments=$15" + }, + "setting_2": { + "description": "daily_use_limit_price=$6.52" + }, + "setting_3": { + "description": "image_output=4" + }, + "setting_4": { + "description": "image_output_v=3" + } + }, + "cost_optimization": { + "pricing": "$6.52 for what has been up until now a daily use limit", + "tip_1": "Dalle-2 is > 1,000x as dollar efficient as hiring a human illustrator." + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/dalle-2/pitfalls.md b/models/image/dalle-2/pitfalls.md new file mode 100644 index 0000000..dd0d8d9 --- /dev/null +++ b/models/image/dalle-2/pitfalls.md @@ -0,0 +1,10 @@ +# DALLE 2 - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Cost & Limits + +### 💰 $6.52 for daily use limit + +### 💰 $6.52 for what has been up until now a daily use limit + diff --git a/models/image/dalle-2/prompting.md b/models/image/dalle-2/prompting.md new file mode 100644 index 0000000..8661a72 --- /dev/null +++ b/models/image/dalle-2/prompting.md @@ -0,0 +1,24 @@ +# DALLE 2 Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- OpenAI owns DALL‑E 2‑generated images to the extent allowed by law. +- Generations can be used for any legal purpose, including for commercial use. +- DALLE 2 can generate images up to 1920x1080 resolution when using text prompts on Discord. +- You may sell your rights to the Generations you create. +- OpenAI offers an interface where you can generate, create variations, inpaint and outpaint. + +## Recommended Settings + +- generation_increments=115 +- price_per_increments=$15 +- daily_use_limit_price=$6.52 +- image_output=4 +- image_output_v=3 + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/dreamstudio/cost_optimization.md b/models/image/dreamstudio/cost_optimization.md new file mode 100644 index 0000000..9ef08bd --- /dev/null +++ b/models/image/dreamstudio/cost_optimization.md @@ -0,0 +1,8 @@ +# DreamStudio - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Dreamstudio credit pricing adjustment (cheaper, that is more options with credits) + diff --git a/models/image/dreamstudio/metadata.json b/models/image/dreamstudio/metadata.json new file mode 100644 index 0000000..04a44d4 --- /dev/null +++ b/models/image/dreamstudio/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "DreamStudio", + "category": "image", + "last_updated": "2025-08-16T17:49:37.250570", + "extraction_timestamp": "2025-08-16T17:07:10.940959", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 149, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/dreamstudio/parameters.json b/models/image/dreamstudio/parameters.json new file mode 100644 index 0000000..4f3f41b --- /dev/null +++ b/models/image/dreamstudio/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "DreamStudio", + "last_updated": "2025-08-16T17:49:37.180971", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Dreamstudio credit pricing adjustment (cheaper, that is more options with credits)" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/dreamstudio/pitfalls.md b/models/image/dreamstudio/pitfalls.md new file mode 100644 index 0000000..31eecae --- /dev/null +++ b/models/image/dreamstudio/pitfalls.md @@ -0,0 +1,6 @@ +# DreamStudio - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +*No major issues reported yet. This may indicate limited community data.* + diff --git a/models/image/dreamstudio/prompting.md b/models/image/dreamstudio/prompting.md new file mode 100644 index 0000000..d087e46 --- /dev/null +++ b/models/image/dreamstudio/prompting.md @@ -0,0 +1,19 @@ +# DreamStudio Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Use your DreamStudio API token in the .env file for the Discord bot. +- Use your DreamStudio API key in the Discord bot; the bot accepts the key from your DreamStudio account. +- This is for folks who have a paid Dreamstudio account. +- Dream Studio API key must be entered manually in the Photoshop plugin; the plugin does not allow pasting the key. +- Grab your API token from DreamStudio. +- inpainting model selection is at the bottom of the UI +- DreamStudio only has SDXL v1 and Stable Diffusion v1.6 models +- Use the basic steps configuration alongside a 4 image batch per gen option. Change your prompt if nothing satisfactory comes up or take the seed of one of the gens if it does and redo it with more steps for a higher quality image. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/jasper/cost_optimization.md b/models/image/jasper/cost_optimization.md new file mode 100644 index 0000000..8e7b8d1 --- /dev/null +++ b/models/image/jasper/cost_optimization.md @@ -0,0 +1,13 @@ +# Jasper - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Free trial includes a bonus 10000 words. + +## Money-Saving Tips + +- install freestyle and aurora dashboard on Jasper model +- Use the official ProductDigi Jasper AI FREE Trial to get a bonus 10000 words. + diff --git a/models/image/jasper/metadata.json b/models/image/jasper/metadata.json new file mode 100644 index 0000000..a9460a3 --- /dev/null +++ b/models/image/jasper/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Jasper", + "category": "image", + "last_updated": "2025-08-16T17:49:36.921999", + "extraction_timestamp": "2025-08-16T17:02:01.206160", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 373, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/jasper/parameters.json b/models/image/jasper/parameters.json new file mode 100644 index 0000000..fd7287f --- /dev/null +++ b/models/image/jasper/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Jasper", + "last_updated": "2025-08-16T17:49:36.814650", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Free trial includes a bonus 10000 words." + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/jasper/pitfalls.md b/models/image/jasper/pitfalls.md new file mode 100644 index 0000000..e9ac62d --- /dev/null +++ b/models/image/jasper/pitfalls.md @@ -0,0 +1,8 @@ +# Jasper - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ original dashboard with error page when opening games on Jasper model + diff --git a/models/image/jasper/prompting.md b/models/image/jasper/prompting.md new file mode 100644 index 0000000..6323ebe --- /dev/null +++ b/models/image/jasper/prompting.md @@ -0,0 +1,13 @@ +# Jasper Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- install freestyle and aurora dashboard on Jasper model +- Use the official ProductDigi Jasper AI FREE Trial to get a bonus 10000 words. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/leonardo-ai/cost_optimization.md b/models/image/leonardo-ai/cost_optimization.md new file mode 100644 index 0000000..5ccbf90 --- /dev/null +++ b/models/image/leonardo-ai/cost_optimization.md @@ -0,0 +1,13 @@ +# Leonardo AI - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Leonardo allows you to produce free AI images with daily renewal credits, which are sufficient to experiment with art styles. You can buy more because the AI tool is worthwhile to use. +- The "Video" tool costs 250 credits instead of 25. +- Pricing calculator link: https://docs.leonardo.ai/docs/plan-with-the-pricing-calculator +- Dear Leonardo AI Team, paying customers could use Flow State completely free of charge. +- According to the calculator, the cost per image with my configuration should be 16 API credits, but in reality, it costs 24. +- Video tool costs 250 credits instead of 25. + diff --git a/models/image/leonardo-ai/metadata.json b/models/image/leonardo-ai/metadata.json new file mode 100644 index 0000000..33ea91e --- /dev/null +++ b/models/image/leonardo-ai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Leonardo AI", + "category": "image", + "last_updated": "2025-08-16T18:35:13.933886", + "extraction_timestamp": null, + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 193, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/leonardo-ai/parameters.json b/models/image/leonardo-ai/parameters.json new file mode 100644 index 0000000..8a10df1 --- /dev/null +++ b/models/image/leonardo-ai/parameters.json @@ -0,0 +1,24 @@ +{ + "service": "Leonardo AI", + "last_updated": "2025-08-16T18:35:13.807189", + "recommended_settings": { + "setting_0": { + "description": "resolution=1280x768" + }, + "setting_1": { + "description": "resolution=1024x640" + } + }, + "cost_optimization": { + "tip_0": "Leonardo allows you to produce free AI images with daily renewal credits, which are sufficient to experiment with art styles. You can buy more because the AI tool is worthwhile to use.", + "tip_1": "The \"Video\" tool costs 250 credits instead of 25.", + "tip_2": "Pricing calculator link: https://docs.leonardo.ai/docs/plan-with-the-pricing-calculator", + "tip_3": "Dear Leonardo AI Team, paying customers could use Flow State completely free of charge.", + "tip_4": "According to the calculator, the cost per image with my configuration should be 16 API credits, but in reality, it costs 24.", + "tip_5": "Video tool costs 250 credits instead of 25." + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/leonardo-ai/pitfalls.md b/models/image/leonardo-ai/pitfalls.md new file mode 100644 index 0000000..d0f65ce --- /dev/null +++ b/models/image/leonardo-ai/pitfalls.md @@ -0,0 +1,20 @@ +# Leonardo AI - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ A little help? Been trying to upgrade my Leo sub from Apprentice to Artisan, but get this error message: "Error: updatePlanSubscription (quote request): update-plan-subscription stripe and db price id are not matched" Any ideas?? Thx. + +### ⚠️ Leonardo AI API with Griptape crashes Comfy, no error message, just goes to press any key to continue. + +### ⚠️ Hello. I'm a newbie with Leonardo AI. After inputting my prompt, Leonardo AI threw a "no mutations exist" error message and didn't generate anything. What does that mean and how to go around this issue, please. Thanks. + +### ⚠️ I keep getting this error message about a Boolean in Cavas Editor/Image Editor. It happens regardless of the image so I guess it has to do with the settings. I hit the “default reset” on the Settings and it didn’t fix itself. To be clear, I never mess with Settings other than switching to different Models. Anyway, yeah, how do I fix this? I use this service a lot and as recently as yesterday, and I’ve never had this error message before. Any ideas what this is about? + +## Cost & Limits + +### 💰 I've been using the Motion tool everyday for content creation and I'm on the paid plan and today all of a sudden it's been removed and replaced with a "Video" tool that costs 250 credits instead of 25 and that is not even able to do the style I ask it? Is Motion going to come back or? What's happening? + +### 💰 Leonardo AI removed the Motion tool, replaced with a Video tool that costs 250 credits instead of 25 and does not support the requested style. + diff --git a/models/image/leonardo-ai/prompting.md b/models/image/leonardo-ai/prompting.md new file mode 100644 index 0000000..31bea8b --- /dev/null +++ b/models/image/leonardo-ai/prompting.md @@ -0,0 +1,20 @@ +# Leonardo AI Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- If you know how to use prompts appropriately, you will undoubtedly receive greater results. +- Use the character consistency feature in Leonardo AI to get consistent characters and settings. +- The first method works specifically for Leonardo Canvas mode +- Use the 'Concept art' or 'illustration' style when generating images to improve results. + +## Recommended Settings + +- resolution=1280x768 +- resolution=1024x640 + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/letsenhance/cost_optimization.md b/models/image/letsenhance/cost_optimization.md new file mode 100644 index 0000000..a2f3d86 --- /dev/null +++ b/models/image/letsenhance/cost_optimization.md @@ -0,0 +1,10 @@ +# LetsEnhance - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- reserve of 30 GPUs +- 5 images per month +- 3 USD per GPU per day + diff --git a/models/image/letsenhance/metadata.json b/models/image/letsenhance/metadata.json new file mode 100644 index 0000000..3b3bc30 --- /dev/null +++ b/models/image/letsenhance/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "LetsEnhance", + "category": "image", + "last_updated": "2025-08-16T17:49:38.673979", + "extraction_timestamp": "2025-08-16T17:46:04.167146", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 44, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/letsenhance/parameters.json b/models/image/letsenhance/parameters.json new file mode 100644 index 0000000..b9c7dad --- /dev/null +++ b/models/image/letsenhance/parameters.json @@ -0,0 +1,14 @@ +{ + "service": "LetsEnhance", + "last_updated": "2025-08-16T17:49:38.604022", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "reserve of 30 GPUs", + "tip_1": "5 images per month", + "tip_2": "3 USD per GPU per day" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/letsenhance/pitfalls.md b/models/image/letsenhance/pitfalls.md new file mode 100644 index 0000000..ee282b2 --- /dev/null +++ b/models/image/letsenhance/pitfalls.md @@ -0,0 +1,6 @@ +# LetsEnhance - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +*No major issues reported yet. This may indicate limited community data.* + diff --git a/models/image/letsenhance/prompting.md b/models/image/letsenhance/prompting.md new file mode 100644 index 0000000..3744a92 --- /dev/null +++ b/models/image/letsenhance/prompting.md @@ -0,0 +1,13 @@ +# LetsEnhance Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- Use LetsEnhance.io for high-res output +- JPEG compression can cause visual glitches like blockiness, color bleed, and ringing. Let's Enhance AI fixes these quickly: upload your image, choose Smart Enhance, hit 'start processing', and download your restored image. It's that simple. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/modyfi/cost_optimization.md b/models/image/modyfi/cost_optimization.md new file mode 100644 index 0000000..e694a24 --- /dev/null +++ b/models/image/modyfi/cost_optimization.md @@ -0,0 +1,8 @@ +# modyfi - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Pricing=Free/USD + diff --git a/models/image/modyfi/metadata.json b/models/image/modyfi/metadata.json new file mode 100644 index 0000000..3e3d8b1 --- /dev/null +++ b/models/image/modyfi/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "modyfi", + "category": "image", + "last_updated": "2025-08-16T17:49:37.533393", + "extraction_timestamp": "2025-08-16T17:13:11.124434", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 42, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/modyfi/parameters.json b/models/image/modyfi/parameters.json new file mode 100644 index 0000000..da21f58 --- /dev/null +++ b/models/image/modyfi/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "modyfi", + "last_updated": "2025-08-16T17:49:37.464145", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Pricing=Free/USD" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/openart/cost_optimization.md b/models/image/openart/cost_optimization.md new file mode 100644 index 0000000..fa4acf0 --- /dev/null +++ b/models/image/openart/cost_optimization.md @@ -0,0 +1,9 @@ +# OpenArt - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- all of these have a free tier so you can test them out. +- Open Art 50% OFF + diff --git a/models/image/openart/metadata.json b/models/image/openart/metadata.json new file mode 100644 index 0000000..6f0d981 --- /dev/null +++ b/models/image/openart/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "OpenArt", + "category": "image", + "last_updated": "2025-08-16T17:49:37.678257", + "extraction_timestamp": "2025-08-16T17:16:13.255325", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 106, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/openart/parameters.json b/models/image/openart/parameters.json new file mode 100644 index 0000000..a3bc30a --- /dev/null +++ b/models/image/openart/parameters.json @@ -0,0 +1,13 @@ +{ + "service": "OpenArt", + "last_updated": "2025-08-16T17:49:37.607203", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "all of these have a free tier so you can test them out.", + "tip_1": "Open Art 50% OFF" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/openart/prompting.md b/models/image/openart/prompting.md new file mode 100644 index 0000000..887f732 --- /dev/null +++ b/models/image/openart/prompting.md @@ -0,0 +1,15 @@ +# OpenArt Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- OpenArt offers three templates: Character Vlog, Music Video, and Explainer. +- OpenArt aggregates 50+ AI models and keeps character looks consistent across shots. +- OpenArt's new "one-click story" feature allows users to generate one-minute videos from a single sentence, script, or song. It offers three templates: Character Vlog, Music Video, and Explainer. It maintains +- OpenArt One-Click Story feature allows you to generate a one-minute video by typing a line, pasting a script, or uploading a song. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/image/phygital/cost_optimization.md b/models/image/phygital/cost_optimization.md new file mode 100644 index 0000000..f3c2c7f --- /dev/null +++ b/models/image/phygital/cost_optimization.md @@ -0,0 +1,8 @@ +# Phygital - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Pricing=Free/USD + diff --git a/models/image/phygital/metadata.json b/models/image/phygital/metadata.json new file mode 100644 index 0000000..4d0f19e --- /dev/null +++ b/models/image/phygital/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Phygital", + "category": "image", + "last_updated": "2025-08-16T17:49:37.821434", + "extraction_timestamp": "2025-08-16T17:21:27.937519", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 107, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/phygital/parameters.json b/models/image/phygital/parameters.json new file mode 100644 index 0000000..05fe87c --- /dev/null +++ b/models/image/phygital/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Phygital", + "last_updated": "2025-08-16T17:49:37.751377", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Pricing=Free/USD" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/playform/metadata.json b/models/image/playform/metadata.json new file mode 100644 index 0000000..0f5f9df --- /dev/null +++ b/models/image/playform/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Playform", + "category": "image", + "last_updated": "2025-08-16T17:49:38.393934", + "extraction_timestamp": "2025-08-16T17:43:08.370701", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 70, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/playform/pitfalls.md b/models/image/playform/pitfalls.md new file mode 100644 index 0000000..2bb2f54 --- /dev/null +++ b/models/image/playform/pitfalls.md @@ -0,0 +1,8 @@ +# Playform - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ I was just able to play half an hour ago but it lagged out and crashed. Now when I boot up the game it kicks me out for a different reason. Connection timeout, profile signed out, etc. Internet is completely fine otherwise, although sometimes I lose connection for a few moments when trying boot but not always. It’s always stuck on the "Signing into online playform" message before it forces me out. + diff --git a/models/image/remini/cost_optimization.md b/models/image/remini/cost_optimization.md new file mode 100644 index 0000000..3a2d49e --- /dev/null +++ b/models/image/remini/cost_optimization.md @@ -0,0 +1,9 @@ +# Remini - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- $4.99/week +- the fact that it's free (with a limited number of photos per day) seems suspicious to me. + diff --git a/models/image/remini/metadata.json b/models/image/remini/metadata.json new file mode 100644 index 0000000..1f7b36f --- /dev/null +++ b/models/image/remini/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Remini", + "category": "image", + "last_updated": "2025-08-16T17:49:38.532390", + "extraction_timestamp": "2025-08-16T17:44:33.087901", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 128, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/image/remini/parameters.json b/models/image/remini/parameters.json new file mode 100644 index 0000000..d1d787e --- /dev/null +++ b/models/image/remini/parameters.json @@ -0,0 +1,13 @@ +{ + "service": "Remini", + "last_updated": "2025-08-16T17:49:38.464585", + "recommended_settings": {}, + "cost_optimization": { + "pricing": "$4.99/week", + "tip_1": "the fact that it's free (with a limited number of photos per day) seems suspicious to me." + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/image/remini/pitfalls.md b/models/image/remini/pitfalls.md new file mode 100644 index 0000000..07c8ee7 --- /dev/null +++ b/models/image/remini/pitfalls.md @@ -0,0 +1,15 @@ +# Remini - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ Anyone receive this message before - Enhancement failed. An unknown error occurred. No further information is available. + + +This is on Remini web not the smart phone app. Was working perfectly before, but now comes up with that message every time I try to upload a pic. Video upload works fine and also can upload pics when not logged into my account so it's as if it's an account issue? + +## Cost & Limits + +### 💰 the fact that it's free (with a limited number of photos per day) seems suspicious to me. + diff --git a/models/image/remini/prompting.md b/models/image/remini/prompting.md new file mode 100644 index 0000000..ecb7e63 --- /dev/null +++ b/models/image/remini/prompting.md @@ -0,0 +1,12 @@ +# Remini Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- I uploaded 8 profile pictures of Jessica Lily and then selected a model. + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/text/ai/metadata.json b/models/text/ai/metadata.json deleted file mode 100644 index 6adf27e..0000000 --- a/models/text/ai/metadata.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "service": "AI", - "category": "text", - "last_updated": "2025-08-14T14:56:50.716671", - "extraction_timestamp": "2025-08-14T14:56:50.716671", - "data_sources": [ - "Reddit API", - "Community discussions" - ], - "posts_analyzed": 0, - "confidence": "medium", - "version": "1.0.0" -} \ No newline at end of file diff --git a/models/text/ai/prompting.md b/models/text/ai/prompting.md deleted file mode 100644 index 0eb76c4..0000000 --- a/models/text/ai/prompting.md +++ /dev/null @@ -1,14 +0,0 @@ -# AI Prompting Guide - -*Last updated: 2025-08-14* - -## Tips & Techniques - -- Data collection is the first step in AI. - Collecting data (text, image, sound, dataset) and storing it in a dictionary (memory of words). -- Pattern-recognizing algorithms are used for learning. - Using algorithms like neo-learning, deep-learning, or reinforcement-learning to identify patterns in data. -- Decision-making logic is used for reasoning. - Using decision-making logic like heuristic learning, probabilistic learning or bias learning to pick the best answer. - -## Sources - -- Reddit community discussions -- User-reported experiences diff --git a/models/text/characterai/cost_optimization.md b/models/text/characterai/cost_optimization.md new file mode 100644 index 0000000..ef817a2 --- /dev/null +++ b/models/text/characterai/cost_optimization.md @@ -0,0 +1,14 @@ +# Character.AI - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Free unlimited messaging + +## Money-Saving Tips + +- Use the Pinned Memories feature to save and pin key messages in each chat to help your Character remember important information. +- Janitor AI is a free NSFW version of Character AI +- Character.AI offers free and unlimited messaging for all users. + diff --git a/models/text/characterai/metadata.json b/models/text/characterai/metadata.json index 7d18625..81ab1c6 100644 --- a/models/text/characterai/metadata.json +++ b/models/text/characterai/metadata.json @@ -1,13 +1,13 @@ { "service": "Character.AI", "category": "text", - "last_updated": "2025-08-14T18:49:04.749081", - "extraction_timestamp": "2025-08-14T18:48:51.676995", + "last_updated": "2025-08-16T18:55:31.861763", + "extraction_timestamp": "2025-08-16T18:37:41.343566", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 100, + "posts_analyzed": 355, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/text/characterai/parameters.json b/models/text/characterai/parameters.json index 53924aa..6b06014 100644 --- a/models/text/characterai/parameters.json +++ b/models/text/characterai/parameters.json @@ -1,12 +1,23 @@ { "service": "Character.AI", - "last_updated": "2025-08-12T20:04:44.782084", + "last_updated": "2025-08-16T18:55:31.740490", "recommended_settings": { "setting_0": { - "description": "Enable 'Goro' in the experimental settings under the Style tab" + "description": "character_definition_limit=32000" + }, + "setting_1": { + "description": "reported_character_definition_limit=3200" + }, + "setting_2": { + "description": "memory_pins=5" + }, + "setting_3": { + "description": "style=Goro" } }, - "cost_optimization": {}, + "cost_optimization": { + "unlimited_option": "Free unlimited messaging" + }, "sources": [ "Reddit community", "User reports" diff --git a/models/text/characterai/pitfalls.md b/models/text/characterai/pitfalls.md index e0b44c1..78a8add 100644 --- a/models/text/characterai/pitfalls.md +++ b/models/text/characterai/pitfalls.md @@ -1,18 +1,18 @@ # Character.AI - Common Pitfalls & Issues -*Last updated: 2025-08-12* +*Last updated: 2025-08-16* ## Technical Issues -### ⚠️ image bug where character images do not load +### ⚠️ Bug that stops Character.AI from replying to your messages -### ⚠️ keyboard bug where the on-screen keyboard closes unexpectedly +### ⚠️ Major keyboard bug: keyboard closing bug on mobile -### ⚠️ bug that stops replying to your messages +## Cost & Limits -### ⚠️ disappearing characters bug where characters are unavailable for some users but available for others +### 💰 the 32000 character limit for the character definition (yet reported only 3200 characters is considered) -## Cost & Limits +### 💰 Character.AI has a 32,000 character limit for creating an AI. -### 💰 Character creation character limit of 32,000 characters per AI +### 💰 Free unlimited messaging diff --git a/models/text/characterai/prompting.md b/models/text/characterai/prompting.md index fe33dc4..f7ffbcc 100644 --- a/models/text/characterai/prompting.md +++ b/models/text/characterai/prompting.md @@ -1,10 +1,25 @@ # Character.AI Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques +- Use the Pinned Memories feature to save and pin key messages in each chat to help your Character remember important information. - Compared to other sites where the X button is hard to find or is easily mashed in with stuff that will take you to the advertisers site, character ai's ads have clear X buttons and they are placed in a way that fat fingering them or missing by a few inches wont send you to google play store or some random site. +- Janitor AI is a free NSFW version of Character AI +- Bots do not learn from your chats, so you cannot train them by chatting. +- You also use prompts to jailbreak the Character AI and access the NSFW version +- Character.AI offers free and unlimited messaging for all users. +- Model selection is only available to character.ai+ members; if you lose your membership you cannot select models. +- Use a Bluetooth keyboard on your phone to avoid the major keyboard closing bug on mobile. +- Go to your "Style" tab on a character and scroll down to experimental. Hit "Goro", and your chats should be fixed. + +## Recommended Settings + +- character_definition_limit=32000 +- reported_character_definition_limit=3200 +- memory_pins=5 +- style=Goro ## Sources diff --git a/models/text/fliki/cost_optimization.md b/models/text/fliki/cost_optimization.md index 0594357..45f1887 100644 --- a/models/text/fliki/cost_optimization.md +++ b/models/text/fliki/cost_optimization.md @@ -1,8 +1,19 @@ # Fliki - Cost Optimization Guide -*Last updated: 2025-08-12* +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Promo code FLIKI25ANNUAL (supposed to give 25% off yearly plans) didn’t work at checkout. +- Fliki doesn’t offer a free trial of the Premium plan. +- Premium features include 1000+ ultra‑realistic voices, longer exports, no watermark, and advanced video tools. +- Promo code FLIKISUMMER50 didn’t work. +- 25% off discount on Fliki premium plans for a whole year. +- Promo code FLIKIBLACKFRIDAY50 didn’t work. ## Money-Saving Tips -- 25% off premium plans for a whole year +- Premium plan provides 1000+ ultra‑realistic voices, longer exports, no watermark, and advanced video tools. +- If you need these features, you must subscribe to the Premium plan; there is no free trial available. +- To claim a 25% off discount on Fliki premium plans, go to the Fliki discount page (coupon included), join with a new email, pick a plan and period, then proceed with your subscription. diff --git a/models/text/fliki/metadata.json b/models/text/fliki/metadata.json index 3313b01..8d44595 100644 --- a/models/text/fliki/metadata.json +++ b/models/text/fliki/metadata.json @@ -1,13 +1,13 @@ { "service": "Fliki", "category": "text", - "last_updated": "2025-08-12T20:07:02.281408", - "extraction_timestamp": null, + "last_updated": "2025-08-16T18:55:32.621056", + "extraction_timestamp": "2025-08-16T18:49:06.894427", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 23, + "posts_analyzed": 75, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/text/fliki/parameters.json b/models/text/fliki/parameters.json index 55d84e4..1d73e8e 100644 --- a/models/text/fliki/parameters.json +++ b/models/text/fliki/parameters.json @@ -1,9 +1,14 @@ { "service": "Fliki", - "last_updated": "2025-08-12T20:07:02.186904", + "last_updated": "2025-08-16T18:55:32.499344", "recommended_settings": {}, "cost_optimization": { - "tip_0": "25% off premium plans for a whole year" + "tip_0": "Promo code FLIKI25ANNUAL (supposed to give 25% off yearly plans) didn\u2019t work at checkout.", + "tip_1": "Fliki doesn\u2019t offer a free trial of the Premium plan.", + "tip_2": "Premium features include 1000+ ultra\u2011realistic voices, longer exports, no watermark, and advanced video tools.", + "tip_3": "Promo code FLIKISUMMER50 didn\u2019t work.", + "tip_4": "25% off discount on Fliki premium plans for a whole year.", + "tip_5": "Promo code FLIKIBLACKFRIDAY50 didn\u2019t work." }, "sources": [ "Reddit community", diff --git a/models/text/fliki/pitfalls.md b/models/text/fliki/pitfalls.md new file mode 100644 index 0000000..40c81dc --- /dev/null +++ b/models/text/fliki/pitfalls.md @@ -0,0 +1,17 @@ +# Fliki - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Policy & Account Issues + +### ⚠️ Fliki does not offer a free trial of the Premium plan. +**Note**: Be aware of terms of service regarding account creation. + +## Cost & Limits + +### 💰 Free plan has watermark, low‑res exports, and barely any credits. + +### 💰 Free plan: AI voices, image assets, simple video generation, but after a few projects hit limitations — watermark, low‑res exports, barely any credits. + +### 💰 Free plan has watermark, low-res exports, barely any credits. + diff --git a/models/text/fliki/prompting.md b/models/text/fliki/prompting.md index 36aab56..4ce0477 100644 --- a/models/text/fliki/prompting.md +++ b/models/text/fliki/prompting.md @@ -1,10 +1,13 @@ # Fliki Prompting Guide -*Last updated: 2025-08-12* +*Last updated: 2025-08-16* -## Usage Tips +## Tips & Techniques -- Use the Fliki discount page (https://fliki.ai/pricing?via=subreddits) which includes the coupon, sign up with a new email, choose a plan and period, then proceed with subscription to activate a whole year at 25% discount. +- Premium plan provides 1000+ ultra‑realistic voices, longer exports, no watermark, and advanced video tools. +- If you need these features, you must subscribe to the Premium plan; there is no free trial available. +- To claim a 25% off discount on Fliki premium plans, go to the Fliki discount page (coupon included), join with a new email, pick a plan and period, then proceed with your subscription. +- Fliki AI transforms text into engaging videos and voiceovers within minutes. ## Sources diff --git a/models/text/ideogram/cost_optimization.md b/models/text/ideogram/cost_optimization.md index 43ecf92..ac7e5a4 100644 --- a/models/text/ideogram/cost_optimization.md +++ b/models/text/ideogram/cost_optimization.md @@ -1,13 +1,17 @@ # Ideogram - Cost Optimization Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Cost & Pricing Information -- Which, if 3-credit generations is used every time, translates to 216 credits per day. +- Generating 4 images therefore costs $0.04. +- Per API, V2 costs $0.08 per image. +- Only 5 AI credits per use +- So one credit costs $0.02. +- If you book the smallest monthly package on the website, 400 credits cost $8. +- This basically means that once you've run out of priority credits, you can generate 72 batches of images per day....theoretically. But only if you stay up all day and night. Which, if 3-credit generations is used every time, translates to 216 credits per day. ## Money-Saving Tips - No more costly LoRA training is needed. -- This basically means that once you've run out of priority credits, you can generate 72 batches of images per day....theoretically. diff --git a/models/text/ideogram/metadata.json b/models/text/ideogram/metadata.json index 14a6d1f..48a6af7 100644 --- a/models/text/ideogram/metadata.json +++ b/models/text/ideogram/metadata.json @@ -1,13 +1,13 @@ { "service": "Ideogram", "category": "text", - "last_updated": "2025-08-14T18:50:04.941370", - "extraction_timestamp": "2025-08-14T18:49:56.394586", + "last_updated": "2025-08-16T18:55:32.107684", + "extraction_timestamp": "2025-08-16T18:41:34.582364", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 50, + "posts_analyzed": 240, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/text/ideogram/parameters.json b/models/text/ideogram/parameters.json index a4c7c7a..bbb8876 100644 --- a/models/text/ideogram/parameters.json +++ b/models/text/ideogram/parameters.json @@ -1,9 +1,11 @@ { "service": "Ideogram", - "last_updated": "2025-08-14T18:50:04.846403", + "last_updated": "2025-08-16T18:55:31.985982", "recommended_settings": {}, "cost_optimization": { - "tip_0": "Which, if 3-credit generations is used every time, translates to 216 credits per day." + "pricing": "If you book the smallest monthly package on the website, 400 credits cost $8.", + "tip_1": "Only 5 AI credits per use", + "tip_2": "This basically means that once you've run out of priority credits, you can generate 72 batches of images per day....theoretically. But only if you stay up all day and night. Which, if 3-credit generations is used every time, translates to 216 credits per day." }, "sources": [ "Reddit community", diff --git a/models/text/ideogram/pitfalls.md b/models/text/ideogram/pitfalls.md index 092a40d..705d060 100644 --- a/models/text/ideogram/pitfalls.md +++ b/models/text/ideogram/pitfalls.md @@ -1,6 +1,10 @@ # Ideogram - Common Pitfalls & Issues -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* -*No major issues reported yet. This may indicate limited community data.* +## Technical Issues + +### ⚠️ Ideogram doesn't have API + +### ⚠️ Ideogram has stepped over the line, increasing wait times between generations to 20 minutes for everyone in slow queue. diff --git a/models/text/ideogram/prompting.md b/models/text/ideogram/prompting.md index 366e81a..fc9115d 100644 --- a/models/text/ideogram/prompting.md +++ b/models/text/ideogram/prompting.md @@ -1,16 +1,21 @@ # Ideogram Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques +- Just add `<>` at the end of your prompt, and let the magic happen! +- The composition should be minimal, but unique and striking. +- Ideogram is best for creating logos, icons, and flyers +- Given an input prompt to a text-to-image model, rewrite the prompt into a description of a unique, stunning, captivating and creative image. Before creating the output prompt, first consider the style, and composition before describing the elements that make up the extraordinary image. +- Eli5: Using ChatGPT as a Flux Prompt Enhancer (similar to Ideogram's 'Magic Prompt'). +- Ideogram’s new Character tool brings personality to AI images. You can create consistent visual traits for people or mascots across prompts, ideal for comics, branding, or storytelling. It’s a big step toward persistent identity in generative art. +- Mention all text to be generated explicitly and wrap in double quotes. Do not use double quotes for any other purpose. - Basically, go into dev mods, use the destroy tool to destroy any object directly related to your ideolegion (shrines, ideogram, etc...), randomize symbols, regenerate all buildings and everything should be good again. -- Prompt easily and keep the identity consistent. -- Developers worldwide can build on Ideogram’s powerful character consistency capabilities now. - Remix your style to place your character without masking. - Edit images to place your character in a specific region. +- Prompt easily and keep the identity consistent. - No more costly LoRA training is needed. -- This basically means that once you've run out of priority credits, you can generate 72 batches of images per day....theoretically. ## Sources diff --git a/models/text/resemble-ai/cost_optimization.md b/models/text/resemble-ai/cost_optimization.md index 4e242a7..6be25bc 100644 --- a/models/text/resemble-ai/cost_optimization.md +++ b/models/text/resemble-ai/cost_optimization.md @@ -1,8 +1,9 @@ # Resemble AI - Cost Optimization Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Cost & Pricing Information -- $0.006 per second +- Pricing: basic package starts at $0.006 per second (because that’s not confusing). +- basic package starts at $0.006 per second (because that’s not confusing). diff --git a/models/text/resemble-ai/metadata.json b/models/text/resemble-ai/metadata.json index 9a91563..bd141a1 100644 --- a/models/text/resemble-ai/metadata.json +++ b/models/text/resemble-ai/metadata.json @@ -1,13 +1,13 @@ { "service": "Resemble AI", "category": "text", - "last_updated": "2025-08-14T18:54:04.618837", - "extraction_timestamp": "2025-08-14T18:54:04.363479", + "last_updated": "2025-08-16T18:55:33.152001", + "extraction_timestamp": "2025-08-16T18:54:13.363333", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 15, + "posts_analyzed": 97, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/text/resemble-ai/parameters.json b/models/text/resemble-ai/parameters.json index b665ab7..faf997b 100644 --- a/models/text/resemble-ai/parameters.json +++ b/models/text/resemble-ai/parameters.json @@ -1,9 +1,9 @@ { "service": "Resemble AI", - "last_updated": "2025-08-14T18:54:04.497022", + "last_updated": "2025-08-16T18:55:33.003913", "recommended_settings": {}, "cost_optimization": { - "pricing": "$0.006 per second" + "pricing": "basic package starts at $0.006 per second (because that\u2019s not confusing)." }, "sources": [ "Reddit community", diff --git a/models/text/resemble-ai/prompting.md b/models/text/resemble-ai/prompting.md index 430b6e3..01ea674 100644 --- a/models/text/resemble-ai/prompting.md +++ b/models/text/resemble-ai/prompting.md @@ -1,10 +1,11 @@ # Resemble AI Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques -- Resemble.ai is an AI-powered text-to-voice and voice-to-voice generator that can be trained with your own voice, or offers a range of voices to choose from. +- Emotion Control: Fine-tune speech expressiveness with a single parameter. From deadpan to dramatic—works out of the box. +- Zero-Shot Voice Cloning: Clone any voice with just a few seconds of reference audio. No finetuning needed. ## Sources diff --git a/models/text/synthesia/metadata.json b/models/text/synthesia/metadata.json index 25bfe4e..f7ed590 100644 --- a/models/text/synthesia/metadata.json +++ b/models/text/synthesia/metadata.json @@ -1,13 +1,13 @@ { "service": "Synthesia", "category": "text", - "last_updated": "2025-08-14T18:51:19.927147", - "extraction_timestamp": "2025-08-14T18:51:11.702010", + "last_updated": "2025-08-16T18:55:32.373561", + "extraction_timestamp": "2025-08-16T18:44:25.745974", "data_sources": [ "Reddit API", "Community discussions" ], - "posts_analyzed": 47, + "posts_analyzed": 217, "confidence": "medium", "version": "1.0.0" } \ No newline at end of file diff --git a/models/text/synthesia/pitfalls.md b/models/text/synthesia/pitfalls.md index f06cb1a..54a046b 100644 --- a/models/text/synthesia/pitfalls.md +++ b/models/text/synthesia/pitfalls.md @@ -1,6 +1,18 @@ # Synthesia - Common Pitfalls & Issues -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* -*No major issues reported yet. This may indicate limited community data.* +## Technical Issues + +### ⚠️ Synthesia also recognizes it just fine, but, once in a while, it stops receiving any input whatsoever from the keyboard. It doesn't display any error message. The USB + +### ⚠️ Synthesia detected a problem and must close:\n\nThe 'tracks' data file couldn't load: Error parsing element attribute\n\nIf you don't think this should have happened, please\ncontact us at support@synthesiagame.com and\ndescribe what you were doing when the problem\noccurred. Thanks for your help! + +### ⚠️ Apps such as Utorrent, synthesia, Mixcraft etc take forever to open and even crash sometimes. + +### ⚠️ synthesia detected a problem and must close. The score data files could not be loaded. Error parsing element attitude. + +## Policy & Account Issues + +### ⚠️ Support has not been helpful… they told me Synthesia and GarageBand don’t output “real MIDI.” I have a brand new FP-30X. I have been trying to use the MIDI interface. To diagnose the problem, I've used two different devices (Macbook Pro, OS 13.3.1, USB connection and iPad Air, USB connection and Bluetooth connection) along with two different pieces of software (GarageBand and Synthesia). The symptoms are identical across all of these devices, diff --git a/models/text/synthesia/prompting.md b/models/text/synthesia/prompting.md index f5c2345..1260af1 100644 --- a/models/text/synthesia/prompting.md +++ b/models/text/synthesia/prompting.md @@ -1,11 +1,20 @@ # Synthesia Prompting Guide -*Last updated: 2025-08-14* +*Last updated: 2025-08-16* ## Tips & Techniques -- Try using a mobile phone instead of a tablet (Android too) and rebooting to solve output lag. -- Check MIDI keyboard compatibility; some keyboards may not respond in Synthesia. +- Steeper pricing, learning curve +- High-quality AI avatars with realistic expressions and lip-syncing +- Best for: Large-scale corporate use +- Using Synthesia can lead to $10K savings and 76% fewer support calls. +- Use a DAW and an interface that allows you to play without latency. +- API & team collaboration tools +- Intuitive drag-and-drop interface for easy video creation +- Great for training, marketing, and internal comms +- Replace "Reaper" with any DAW that you happen to be +- Supports over 120 languages and accents +- 120+ languages, realistic avatars, custom branding ## Sources diff --git a/models/video/klingai/cost_optimization.md b/models/video/klingai/cost_optimization.md new file mode 100644 index 0000000..4853c7b --- /dev/null +++ b/models/video/klingai/cost_optimization.md @@ -0,0 +1,15 @@ +# klingai - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- $6 for each 8 second video +- 20 credits per 5 seconds for video generation + +## Money-Saving Tips + +- During a special sale, image creations on KlingAI did not cost any credits +- The API supports both free and paid Kling accounts. +- The gift card option for KlingAI has the same cost/credit combos as regular subscription plans and is a one-time purchase with no auto-renew or need to cancel later + diff --git a/models/video/klingai/metadata.json b/models/video/klingai/metadata.json new file mode 100644 index 0000000..aaebe88 --- /dev/null +++ b/models/video/klingai/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "klingai", + "category": "image", + "last_updated": "2025-08-16T17:49:37.966179", + "extraction_timestamp": null, + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 88, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/klingai/parameters.json b/models/video/klingai/parameters.json new file mode 100644 index 0000000..64d4da1 --- /dev/null +++ b/models/video/klingai/parameters.json @@ -0,0 +1,35 @@ +{ + "service": "klingai", + "last_updated": "2025-08-16T17:49:37.894942", + "recommended_settings": { + "setting_0": { + "description": "kling_access_key=config.kling_access_key" + }, + "setting_1": { + "description": "kling_secret_key=config.kling_secret_key" + }, + "setting_2": { + "description": "alg=HS256" + }, + "setting_3": { + "description": "typ=JWT" + }, + "setting_4": { + "description": "iss=self.ak" + }, + "setting_5": { + "description": "exp=int(time.time())+1800" + }, + "setting_6": { + "description": "nbf=int(time.time())-5" + } + }, + "cost_optimization": { + "pricing": "$6 for each 8 second video", + "tip_1": "20 credits per 5 seconds for video generation" + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/klingai/pitfalls.md b/models/video/klingai/pitfalls.md new file mode 100644 index 0000000..3e0e3de --- /dev/null +++ b/models/video/klingai/pitfalls.md @@ -0,0 +1,10 @@ +# klingai - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Technical Issues + +### ⚠️ The error message displayed is 'Kling 1.5 is in high demand right now' + +### ⚠️ Kling 1.5 Standard crashes constantly when generating videos + diff --git a/models/video/klingai/prompting.md b/models/video/klingai/prompting.md new file mode 100644 index 0000000..2d816c9 --- /dev/null +++ b/models/video/klingai/prompting.md @@ -0,0 +1,29 @@ +# klingai Prompting Guide + +*Last updated: 2025-08-16* + +## Tips & Techniques + +- During a special sale, image creations on KlingAI did not cost any credits +- The API supports both free and paid Kling accounts. +- Key features of Kling API v1 include video generation from elements, special effects, virtual try-on, video extension, lip-syncing, and text-to-speech. +- Use KlingAI’s new 'Virtual Try-On' feature: first generate a virtual model (you can even use MidJourney for this), then pick basic tops and bottoms to showcase, upload everything to KlingAI and let the magic happen. +- The gift card option for KlingAI has the same cost/credit combos as regular subscription plans and is a one-time purchase with no auto-renew or need to cancel later +- Kling API v1 offers text-to-video, image-to-video, and image manipulation capabilities. +- Kling API v1 supports model versions 1.5, 1.6, and 2.0. +- You can select up to six elements within an image to define their motion trajectories (supported on 1.5 model). + +## Recommended Settings + +- kling_access_key=config.kling_access_key +- kling_secret_key=config.kling_secret_key +- alg=HS256 +- typ=JWT +- iss=self.ak +- exp=int(time.time())+1800 +- nbf=int(time.time())-5 + +## Sources + +- Reddit community discussions +- User-reported experiences diff --git a/models/video/luma-dream-machine/cost_optimization.md b/models/video/luma-dream-machine/cost_optimization.md new file mode 100644 index 0000000..a3583fa --- /dev/null +++ b/models/video/luma-dream-machine/cost_optimization.md @@ -0,0 +1,8 @@ +# Luma Dream Machine - Cost Optimization Guide + +*Last updated: 2025-08-16* + +## Cost & Pricing Information + +- Premium+ plan: 90 videos per month with Kling 2.1 1080p; each video costs 1,500 credits; monthly credit limit 45,000; actual videos per month = 45,000 / 1,500 = 30 videos. + diff --git a/models/video/luma-dream-machine/metadata.json b/models/video/luma-dream-machine/metadata.json new file mode 100644 index 0000000..3c807ac --- /dev/null +++ b/models/video/luma-dream-machine/metadata.json @@ -0,0 +1,13 @@ +{ + "service": "Luma Dream Machine", + "category": "text", + "last_updated": "2025-08-16T18:55:32.876982", + "extraction_timestamp": "2025-08-16T18:53:04.830332", + "data_sources": [ + "Reddit API", + "Community discussions" + ], + "posts_analyzed": 35, + "confidence": "medium", + "version": "1.0.0" +} \ No newline at end of file diff --git a/models/video/luma-dream-machine/parameters.json b/models/video/luma-dream-machine/parameters.json new file mode 100644 index 0000000..c213be1 --- /dev/null +++ b/models/video/luma-dream-machine/parameters.json @@ -0,0 +1,12 @@ +{ + "service": "Luma Dream Machine", + "last_updated": "2025-08-16T18:55:32.748601", + "recommended_settings": {}, + "cost_optimization": { + "tip_0": "Premium+ plan: 90 videos per month with Kling 2.1 1080p; each video costs 1,500 credits; monthly credit limit 45,000; actual videos per month = 45,000 / 1,500 = 30 videos." + }, + "sources": [ + "Reddit community", + "User reports" + ] +} \ No newline at end of file diff --git a/models/video/luma-dream-machine/pitfalls.md b/models/video/luma-dream-machine/pitfalls.md new file mode 100644 index 0000000..ac86347 --- /dev/null +++ b/models/video/luma-dream-machine/pitfalls.md @@ -0,0 +1,10 @@ +# Luma Dream Machine - Common Pitfalls & Issues + +*Last updated: 2025-08-16* + +## Cost & Limits + +### 💰 Hi. The **Premium+** plan states that I can generate **90 videos** per month with '**Kling 2.1 1080p**', but I found out that each video costs **1,500 credits**. Since the monthly credit limit is **45,000**, that only allows for 45,000 / 1,500 = **30 videos** per month. So where are the **90 videos?** + +### 💰 Premium+ plan: 90 videos per month with Kling 2.1 1080p; each video costs 1,500 credits; monthly credit limit 45,000; actual videos per month = 45,000 / 1,500 = 30 videos. + diff --git a/src/cli.py b/src/cli.py index 7e93cf1..fef8fd6 100644 --- a/src/cli.py +++ b/src/cli.py @@ -430,7 +430,7 @@ async def _targeted(): # Generate queries based on category or all services use_all_patterns = query_limit >= 20 # Use all patterns if query_limit is 20 or more all_queries = generator.generate_queries( - max_queries=1000, # Get all services + max_queries=2000, # Get all services category_filter=category if category else None, use_all_patterns=use_all_patterns @@ -478,14 +478,17 @@ async def _targeted(): async def process_query(query, scraper, batch_processor, llm, semaphore): async with semaphore: try: + logger.info(f"Searching {query['service']}: {query['pattern_type']}") posts = await scraper.scrape(query['query_url'], max_posts=limit) if posts: + logger.info(f"Found {len(posts)} posts for {query['service']} ({query['pattern_type']})") # Batch process with LLM batches = batch_processor.batch_posts_by_tokens(posts, query['service']) results = [] - for batch in batches: + for batch_idx, batch in enumerate(batches, 1): + logger.info(f"Processing batch {batch_idx}/{len(batches)} for {query['service']} ({query['pattern_type']})") result = await batch_processor.process_batch(batch, query['service'], llm) results.append(result) @@ -495,6 +498,7 @@ async def process_query(query, scraper, batch_processor, llm, semaphore): 'results': results } else: + logger.info(f"No posts found for {query['service']} ({query['pattern_type']})") return { 'query': query, 'posts_found': 0, @@ -660,7 +664,7 @@ async def _batch(): # Generate queries for all services in category use_all_patterns = query_limit >= 20 # Use all patterns if query_limit is 20 or more all_queries = generator.generate_queries( - max_queries=1000, # High limit to get all services + max_queries=2000, # High limit to get all services category_filter=category, use_all_patterns=use_all_patterns ) @@ -726,17 +730,21 @@ async def _batch(): service_queries = queries_by_service[service] progress.update(task, description=f"Processing {service}...") - for query in service_queries: + for query_idx, query in enumerate(service_queries, 1): try: + logger.info(f"Query {query_idx}/{len(service_queries)} for {service}: {query['pattern_type']}") posts = await scraper.scrape(query['query_url'], max_posts=limit) if posts: + logger.info(f"Found {len(posts)} posts for {service} ({query['pattern_type']})") # Batch process with LLM batches = batch_processor.batch_posts_by_tokens(posts, service) for batch in batches: result = await batch_processor.process_batch(batch, service, llm) all_results.append(result) + else: + logger.info(f"No posts found for {service} ({query['pattern_type']})") progress.update(task, advance=1) await asyncio.sleep(1) # Rate limiting @@ -1192,6 +1200,81 @@ def search_models(query, limit): console.print(table) +@cli.command(name="update-context") +@click.option("--force", "-f", is_flag=True, help="Force update even if cache is recent") +def update_context(force): + """Update OpenRouter model context cache for accurate token limits.""" + show_banner() + + from src.services.openrouter_context import OpenRouterContextManager + from pathlib import Path + import json + from datetime import datetime, timedelta + + cache_file = Path("data/cache/openrouter_models.json") + + # Check if cache exists and is recent + if cache_file.exists() and not force: + try: + with open(cache_file, 'r') as f: + data = json.load(f) + fetched_at = datetime.fromisoformat(data.get("fetched_at", "")) + age = datetime.now() - fetched_at + + if age < timedelta(hours=24): + console.print(f"[yellow]Cache is recent ({age.total_seconds()/3600:.1f} hours old)[/yellow]") + console.print(f"[dim]Use --force to update anyway[/dim]") + + # Show current stats + models = data.get("models", {}) + console.print(f"\n[cyan]Current cache:[/cyan] {len(models)} models") + + # Show some high-context models + high_context = [(k, v) for k, v in models.items() if v.get("context_length", 0) > 100000] + if high_context: + console.print(f"[green]High-context models:[/green] {len(high_context)}") + for model_id, info in sorted(high_context[:5], key=lambda x: x[1]["context_length"], reverse=True): + console.print(f" • {model_id}: {info['context_length']:,} tokens") + return + except Exception: + pass # Cache is invalid, proceed with update + + # Update cache + console.print("[cyan]Fetching model context information from OpenRouter...[/cyan]") + + manager = OpenRouterContextManager() + models = manager.get_all_models() + + if not models: + console.print("[red]Failed to fetch models from OpenRouter[/red]") + console.print("[yellow]Make sure you have OPENROUTER_API_KEY set in .env[/yellow]") + return + + # Save cache + cache_file.parent.mkdir(parents=True, exist_ok=True) + manager.save_cache(str(cache_file)) + + # Show results + console.print(f"\n[green]✓ Updated context cache with {len(models)} models[/green]") + + # Show some interesting stats + high_context = [(k, v) for k, v in models.items() if v.get("context_length", 0) > 100000] + free_models = [(k, v) for k, v in models.items() + if v.get("pricing", {}).get("prompt", 1) == 0] + + console.print(f"\n[bold]Model Statistics:[/bold]") + console.print(f" • Total models: {len(models)}") + console.print(f" • High-context (>100k): {len(high_context)}") + console.print(f" • Free models: {len(free_models)}") + + if high_context: + console.print(f"\n[bold]Top 5 High-Context Models:[/bold]") + for model_id, info in sorted(high_context[:5], key=lambda x: x[1]["context_length"], reverse=True): + console.print(f" • {model_id}: {info['context_length']:,} tokens") + + console.print(f"\n[dim]Cache saved to: {cache_file}[/dim]") + + @cli.command() def schedule(): """Run periodic scraping based on SCRAPING_INTERVAL_HOURS setting.""" diff --git a/src/scrapers/service_discovery.py b/src/scrapers/service_discovery.py index 087a006..bb17545 100644 --- a/src/scrapers/service_discovery.py +++ b/src/scrapers/service_discovery.py @@ -43,6 +43,18 @@ def __init__(self): { 'url': 'https://raw.githubusercontent.com/mahseema/awesome-ai-tools/main/README.md', 'name': 'awesome-ai-tools' + }, + { + 'url': 'https://raw.githubusercontent.com/filipecalegario/awesome-generative-ai/main/README.md', + 'name': 'filipecalegario-awesome-generative-ai' + }, + { + 'url': 'https://raw.githubusercontent.com/aishwaryanr/awesome-generative-ai-guide/main/README.md', + 'name': 'awesome-generative-ai-guide' + }, + { + 'url': 'https://raw.githubusercontent.com/eudk/awesome-ai-tools/main/README.md', + 'name': 'eudk-awesome-ai-tools' } ] @@ -114,18 +126,55 @@ async def _parse_awesome_list(self, session: aiohttp.ClientSession, list_info: D def _is_likely_service(self, name: str, url: str, description: str) -> bool: """Determine if entry is likely an AI service vs documentation/article""" - # Skip common non-service entries - skip_keywords = ['tutorial', 'guide', 'paper', 'book', 'course', 'awesome', 'list', 'collection'] + # Skip common non-service entries and article-like titles + skip_keywords = ['tutorial', 'guide', 'paper', 'book', 'course', 'awesome', 'list', + 'collection', 'article', 'news', 'blog', 'post', 'story', 'report', + 'analysis', 'review', 'opinion', 'party', 'craze', 'trend', 'revolution', + 'gold rush', 'heralds', 'announcement', 'release', 'sparks', 'transform'] name_lower = name.lower() + description_lower = description.lower() + # Skip if name sounds like an article title (too many words, contains sentence-like structure) + if len(name.split()) > 5: # Service names are typically short + return False + if any(keyword in name_lower for keyword in skip_keywords): return False + + # Skip descriptions that sound like article summaries + article_indicators = ['article', 'op-ed', 'announcement', 'examination of', 'summarizing', + 'comprehensive look', 'explores', 'discusses', 'argues'] + if any(indicator in description_lower for indicator in article_indicators): + return False - # Look for service indicators - service_indicators = ['api', 'platform', 'tool', 'model', 'generate', 'ai', 'llm', 'gpt'] + # Check URL patterns that indicate actual services + if url: + # Skip news/article URLs + if any(domain in url.lower() for domain in ['/blog/', '/news/', '/article/', + 'medium.com', 'arxiv.org', 'youtube.com']): + return False + + service_domains = ['.ai', '.io', 'api.', 'app.', 'platform.', 'cloud.', + 'huggingface.co', 'openai.com', 'anthropic.com', 'cohere.com', + 'replicate.com', 'stability.ai', 'github.com/.*api', 'github.com/.*sdk'] + if any(domain in url.lower() for domain in service_domains): + return True + + # Look for service indicators (more specific now) + service_indicators = ['api access', 'platform for', 'sdk', 'model api', 'inference', + 'endpoint', 'deployment', 'hosted', 'cloud service', 'playground', + 'provides access to', 'api for'] combined = (name + ' ' + description).lower() - return any(indicator in combined for indicator in service_indicators) + # Require at least one strong indicator + strong_indicators = ['api', 'sdk', 'platform', 'model api', 'inference service', + 'provides access to', 'api for'] + has_strong = any(indicator in combined for indicator in strong_indicators) + + # If name looks like a product name (single word or two words max) + is_product_name = len(name.split()) <= 2 + + return has_strong and is_product_name def _clean_service_name(self, name: str) -> str: """Clean and normalize service name""" @@ -137,20 +186,71 @@ def _clean_service_name(self, name: str) -> str: def _infer_category(self, name: str, description: str) -> str: """Infer service category from name and description""" + name_lower = name.lower() + desc_lower = description.lower() combined = (name + ' ' + description).lower() - categories = { - 'text': ['llm', 'language model', 'chat', 'text', 'gpt', 'claude', 'writing'], - 'image': ['image', 'picture', 'photo', 'art', 'dall-e', 'midjourney', 'stable diffusion'], - 'video': ['video', 'animation', 'motion', 'runway', 'pika'], - 'audio': ['audio', 'voice', 'speech', 'music', 'sound', 'tts', 'elevenlabs'], - 'code': ['code', 'copilot', 'programming', 'developer'], - 'multimodal': ['multimodal', 'vision', 'multi-modal'] - } + # Priority-based categorization with weighted keywords + # Check for most specific categories first + + # Video - very specific keywords + video_strong = ['video', 'animation', 'motion graphics', 'movie', 'film', 'footage'] + video_names = ['synthesia', 'heygen', 'runway', 'pika', 'pictory', 'fliki', + 'invideo', 'luma', 'kaiber', 'genmo', 'hour one', 'deepbrain', + 'colossyan', 'elai', 'steve.ai', 'rephrase', 'd-id'] + if any(kw in name_lower for kw in video_names): + return 'video' + if any(kw in combined for kw in video_strong): + return 'video' + + # Audio - specific audio keywords + audio_strong = ['audio', 'voice', 'speech', 'music', 'sound', 'tts', 'text-to-speech', + 'voice synthesis', 'voice clone', 'podcast', 'transcription'] + audio_names = ['elevenlabs', 'eleven labs', 'murf', 'play.ht', 'wellsaid', + 'resemble', 'descript', 'overdub', 'respeecher', 'sonantic'] + if any(kw in name_lower for kw in audio_names): + return 'audio' + if any(kw in combined for kw in audio_strong): + return 'audio' + + # Image - specific image keywords + image_strong = ['image', 'picture', 'photo', 'art', 'drawing', 'illustration', + 'graphic', 'visual', 'paint', 'design', 'artwork'] + image_names = ['dall-e', 'midjourney', 'stable diffusion', 'leonardo', 'ideogram', + 'dreamstudio', 'nightcafe', 'artbreeder', 'deep dream'] + if any(kw in name_lower for kw in image_names): + return 'image' + if any(kw in combined for kw in image_strong): + return 'image' + + # Code - programming specific + code_strong = ['code', 'programming', 'developer', 'ide', 'compiler', 'debugger', + 'repository', 'github', 'coding assistant'] + code_names = ['copilot', 'codeium', 'cursor', 'tabnine', 'codex', 'replit'] + if any(kw in name_lower for kw in code_names): + return 'code' + if any(kw in combined for kw in code_strong): + return 'code' + + # Multimodal - handles multiple modalities + multimodal_keywords = ['multimodal', 'vision', 'multi-modal', 'image and text', + 'vision language', 'vlm', 'visual language'] + if any(kw in combined for kw in multimodal_keywords): + return 'multimodal' - for category, keywords in categories.items(): - if any(keyword in combined for keyword in keywords): - return category + # Text/LLM - language models and text generation + # Check this AFTER more specific categories to avoid false positives + text_strong = ['llm', 'language model', 'chatbot', 'chat assistant', 'gpt', + 'claude', 'writing assistant', 'text generation', 'conversation'] + text_names = ['openai', 'anthropic', 'claude', 'gpt', 'mistral', 'llama', + 'gemini', 'palm', 'character.ai', 'replika'] + # Exclude if it's clearly about text-to-X conversion + if not any(pattern in combined for pattern in ['text-to-video', 'text-to-image', + 'text-to-speech', 'text-to-audio']): + if any(kw in name_lower for kw in text_names): + return 'text' + if any(kw in combined for kw in text_strong): + return 'text' return 'general' diff --git a/src/scrapers/targeted_search_generator.py b/src/scrapers/targeted_search_generator.py index 58ae19b..9e8ea8b 100644 --- a/src/scrapers/targeted_search_generator.py +++ b/src/scrapers/targeted_search_generator.py @@ -208,6 +208,13 @@ def generate_queries(self, max_queries: int = 100, category_filter: str = None, for service_key, service_data in filtered_services.items(): prioritized_services.append((service_data, 'medium')) + # If we still have room and want more services, add non-priority ones + # This ensures we use all available services when max_queries allows + if len(prioritized_services) < len(filtered_services): + for service_key, service_data in filtered_services.items(): + if service_data not in [s[0] for s in prioritized_services]: + prioritized_services.append((service_data, 'normal')) + # Calculate services to process if use_all_patterns: # When using all patterns, we generate 20 queries per service @@ -247,7 +254,7 @@ def generate_queries(self, max_queries: int = 100, category_filter: str = None, if len(queries) >= max_queries: break - logger.info(f"Generated {len(queries)} targeted search queries") + logger.info(f"Generated {len(queries)} targeted search queries (max_queries={max_queries})") # Group by service for summary by_service = {} diff --git a/src/services/batch_llm_processor.py b/src/services/batch_llm_processor.py index ae95334..c661ceb 100644 --- a/src/services/batch_llm_processor.py +++ b/src/services/batch_llm_processor.py @@ -302,66 +302,70 @@ async def process_batch(self, posts: List[Dict], service_name: str, llm_processo # The LLM will naturally work with what fits in its context prompt = self.create_batch_prompt(posts, service_name) - try: - # Process with LLM - response = await llm_processor.process_raw_prompt(prompt) - - # Check if response is empty - if not response or response.strip() == "": - logger.error(f"Empty response from LLM for {service_name}") - return { - "service": service_name, - "problems": [], - "tips": [], - "cost_info": [], - "settings": [], - "error": "Empty response from LLM", - "batch_size": len(posts) - } - - # Parse response - result = json.loads(response) - - # Clean settings - ensure they are strings not dicts - if 'settings' in result: - clean_settings = [] - for setting in result['settings']: - if isinstance(setting, dict): - # Convert dict to string format - for key, value in setting.items(): - clean_settings.append(f"{key} = {value}") - elif isinstance(setting, str): - clean_settings.append(setting) - result['settings'] = clean_settings - - # Add metadata - result['batch_size'] = len(posts) - result['timestamp'] = datetime.now().isoformat() - result['token_count'] = prompt_tokens - - return result - - except json.JSONDecodeError as e: - logger.error(f"Failed to parse LLM response: {e}") - logger.error(f"Raw response: {response[:500]}...") - return { - "service": service_name, - "problems": [], - "optimizations": [], - "parameters": [], - "error": str(e), - "batch_size": len(posts) - } - except Exception as e: - logger.error(f"Batch processing failed: {e}") - return { - "service": service_name, - "problems": [], - "optimizations": [], - "parameters": [], - "error": str(e), - "batch_size": len(posts) - } + # Retry logic for JSON parsing failures + max_retries = 3 + for attempt in range(max_retries): + try: + # Process with LLM + response = await llm_processor.process_raw_prompt(prompt) + + # Check if response is empty + if not response or response.strip() == "": + logger.error(f"Empty response from LLM for {service_name}") + return { + "service": service_name, + "problems": [], + "tips": [], + "cost_info": [], + "settings": [], + "error": "Empty response from LLM", + "batch_size": len(posts) + } + + # Parse response + result = json.loads(response) + + # Clean settings - ensure they are strings not dicts + if 'settings' in result: + clean_settings = [] + for setting in result['settings']: + if isinstance(setting, dict): + # Convert dict to string format + for key, value in setting.items(): + clean_settings.append(f"{key} = {value}") + elif isinstance(setting, str): + clean_settings.append(setting) + result['settings'] = clean_settings + + # Add metadata + result['batch_size'] = len(posts) + result['timestamp'] = datetime.now().isoformat() + result['token_count'] = prompt_tokens + + # Success - return result + if attempt > 0: + logger.info(f"JSON parsing succeeded on attempt {attempt + 1} for {service_name}") + return result + + except json.JSONDecodeError as e: + logger.error(f"Failed to parse LLM response (attempt {attempt + 1}/{max_retries}): {e}") + logger.error(f"Raw response: {response[:500]}...") + + if attempt < max_retries - 1: + logger.info(f"Retrying JSON parsing for {service_name}...") + # Add a small delay before retry + await asyncio.sleep(1) + else: + logger.error(f"All {max_retries} attempts failed for {service_name}") + return { + "service": service_name, + "problems": [], + "tips": [], + "cost_info": [], + "settings": [], + "error": str(e), + "batch_size": len(posts) + } def merge_results(self, results: List[Dict]) -> Dict: """Merge multiple batch results into one""" From fa3547dc6cb819aee5d2f52a8557450351ef4ae5 Mon Sep 17 00:00:00 2001 From: arahangua Date: Sat, 16 Aug 2025 19:29:46 +0900 Subject: [PATCH 3/4] updated: PR template to be aligned with the current repo --- .github/pull_request_template.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c494910..d682fba 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -38,10 +38,12 @@ Fixes #(issue number) ## 🧪 Testing -- [ ] Ran `uv run pytest` -- [ ] Tested intelligent scraper with: `scapo scrape run --sources [source] --limit 5` -- [ ] Verified LLM processing worked correctly -- [ ] Checked that only AI/ML content was processed +- [ ] Tested service discovery: `uv run scapo scrape discover --update` +- [ ] Tested targeted scraping: `uv run scapo scrape targeted --service "[service]" --limit 10` +- [ ] Tested batch processing: `uv run scapo scrape batch --category [category] --limit 10 --batch-size 2` +- [ ] Verified LLM extraction quality (checked generated files in `models/`) +- [ ] Tested TUI explorer: `uv run scapo tui` +- [ ] For OpenRouter users: Updated context cache with `uv run scapo update-context` - [ ] Other testing (please describe): ## 📸 Screenshots (if applicable) From 44793fc8a46a43b65f760cc35aeb72cf7ae31614 Mon Sep 17 00:00:00 2001 From: arahangua Date: Sat, 16 Aug 2025 19:43:14 +0900 Subject: [PATCH 4/4] removed:outdated docs folder --- .github/CODEOWNERS | 1 - README.md | 2 - docs/ADD_NEW_SOURCE.md | 161 ------------------------------- docs/CONFIGURATION.md | 211 ----------------------------------------- 4 files changed, 375 deletions(-) delete mode 100644 docs/ADD_NEW_SOURCE.md delete mode 100644 docs/CONFIGURATION.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8cadd0b..2351765 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,7 +6,6 @@ # Documentation *.md @czero-cc -/docs/ @czero-cc # Core functionality /src/core/ @czero-cc diff --git a/README.md b/README.md index e382f31..703e44b 100644 --- a/README.md +++ b/README.md @@ -364,10 +364,8 @@ Help us build the community knowledge base for AI service optimization! ## 📚 Documentation -- [Configuration Guide](docs/CONFIGURATION.md) - [Quick Start Guide](QUICKSTART.md) - [Contributing Guide](CONTRIBUTING.md) -- [Add New Source Tutorial (legacy method)](docs/ADD_NEW_SOURCE.md) ## 📜 License diff --git a/docs/ADD_NEW_SOURCE.md b/docs/ADD_NEW_SOURCE.md deleted file mode 100644 index f04833d..0000000 --- a/docs/ADD_NEW_SOURCE.md +++ /dev/null @@ -1,161 +0,0 @@ -# 🚀 Adding New Sources - Super Easy Guide! - -Adding a new source for scraping is straightforward with our intelligent browser-based scraper! - -## 🎯 How It Works - -Our system uses **intelligent browser-based scraping** with LLM processing: -- **No API keys needed** - everything works via browser automation -- **Automatic entity extraction** - LLM identifies models, techniques, and themes -- **Smart filtering** - Only AI/ML related content is processed - -## 📝 Currently Supported Sources - -### Reddit Communities -```bash -# Scrape specific subreddits -python -m src.cli scrape run --sources reddit:LocalLLaMA,reddit:OpenAI -``` - -Popular subreddits: -- `LocalLLaMA` - Local model discussions -- `OpenAI` - ChatGPT and GPT discussions -- `StableDiffusion` - Image generation -- `midjourney` - Midjourney prompts -- `ClaudeAI` - Claude discussions -- `singularity` - General AI topics - -### Hacker News -```bash -# Scrape AI discussions from HN -python -m src.cli scrape run --sources hackernews -``` - -### GitHub Repositories -```bash -# Scrape GitHub repos (provide owner/repo) -python -m src.cli scrape run --sources github:dair-ai/Prompt-Engineering-Guide -``` - -## 🚀 Adding Support for New Sources - -To add a new source type, you need to: - -1. **Add a scraping method** in `src/scrapers/intelligent_browser_scraper.py`: - -```python -async def scrape_mynewsource_browser(self, page: Page, **kwargs) -> List[ProcessedContent]: - """Scrape MyNewSource using browser.""" - logger.info("Scraping MyNewSource") - - # Navigate to the source - await page.goto("https://mynewsource.com", wait_until='domcontentloaded') - - # Extract content using browser automation - content = await page.evaluate(''' - // JavaScript to extract content - return document.querySelector('.content').innerText; - ''') - - # Process with LLM - entities = await self.extract_entities_with_llm(content, "mynewsource") - - if entities.is_ai_related: - practices = await self.extract_best_practices_with_llm(content, entities) - # Return processed content -``` - -2. **Update the main scrape method** to handle your source: - -```python -# In scrape_sources method -elif source.startswith("mynewsource:"): - content = await self.scrape_mynewsource_browser(page, ...) - self.processed_content.extend(content) -``` - -## 🏷️ How Content is Processed - -1. **Entity Extraction**: LLM identifies: - - Model names (exact versions) - - Theme (prompting, fine-tuning, deployment, etc.) - - Techniques mentioned - - Relevance score (0-1) - -2. **Practice Extraction**: For relevant content, LLM extracts: - - Practice type (prompting, parameter, pitfall, tip) - - Actionable description - - Applicable models - - Confidence score - -3. **Automatic Categorization**: Models are categorized into: - - `text/` - Language models - - `image/` - Image generation models - - `video/` - Video generation models - - `audio/` - Audio/speech models - - `multimodal/` - Multi-modal models - -## ✅ Testing Your Source - -1. Configure your LLM provider in `.env`: -```bash -# For OpenRouter (cloud) -LLM_PROVIDER=openrouter -OPENROUTER_API_KEY=your_key_here - -# For Ollama (local) -LLM_PROVIDER=local -LOCAL_LLM_TYPE=ollama -LOCAL_LLM_URL=http://localhost:11434 - -# For LM Studio (local) -LLM_PROVIDER=local -LOCAL_LLM_TYPE=lmstudio -LOCAL_LLM_URL=http://localhost:1234 -``` - -2. Test the scraper directly: -```bash -# Run the intelligent browser scraper -uv run python -m src.scrapers.intelligent_browser_scraper -``` - -3. Run a small test scrape: -```bash -# Fast mode for testing (0.5s delays) -SCRAPING_DELAY_SECONDS=0.5 python -m src.cli scrape run --sources mynewsource:test --limit 5 - -# Or set in .env for permanent change -``` - -4. For production, use respectful delays: -```bash -# Default 2s delay is recommended -SCRAPING_DELAY_SECONDS=2 python -m src.cli scrape run --sources mynewsource:live -``` - -## 🤝 Contributing - -1. Fork the repository -2. Implement your new source scraper -3. Test with local LLM -4. Submit a PR with: - - New scraping method - - Example usage - - Any special requirements - -## 💡 Tips for Good Sources - -- **Public access** - No login required -- **Active community** - Recent discussions -- **AI/ML focused** - High relevance scores -- **Structured content** - Easy to extract - -## 🚫 What NOT to Add - -- ❌ Sources requiring paid access -- ❌ Private/closed communities -- ❌ Sources with anti-scraping measures -- ❌ Non-English sources (for now) - -Remember: Our intelligent scraper will automatically filter out non-AI content, so don't worry about sources having some off-topic content! \ No newline at end of file diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md deleted file mode 100644 index c9667ec..0000000 --- a/docs/CONFIGURATION.md +++ /dev/null @@ -1,211 +0,0 @@ -# SCAPO Configuration Guide - -This guide covers all configuration options available in SCAPO. - -## Environment Variables - -Create a `.env` file in the project root (copy from `.env.example`): - -```bash -cp .env.example .env -``` - -### LLM Provider Configuration - -#### OpenRouter (Cloud-based) -```bash -LLM_PROVIDER=openrouter -OPENROUTER_API_KEY=your_api_key_here -OPENROUTER_MODEL=anthropic/claude-3.5-haiku # Fast & affordable -``` - -Popular models: -- `anthropic/claude-3.5-haiku` - Fast, cheap, good quality -- `anthropic/claude-opus-4` - World's best coding model -- `openai/gpt-4-turbo` - High quality -- `deepseek/deepseek-r1:free` - Free reasoning model! - -#### Ollama (Local) -```bash -LLM_PROVIDER=local -LOCAL_LLM_TYPE=ollama -LOCAL_LLM_URL=http://localhost:11434 -LOCAL_LLM_MODEL=llama3 -``` - -#### LM Studio (Local) -```bash -LLM_PROVIDER=local -LOCAL_LLM_TYPE=lmstudio -LOCAL_LLM_URL=http://localhost:1234 -# Model is selected in LM Studio GUI -``` - -### Processing Limits - -Control how much content is sent to LLMs: - -```bash -LLM_MAX_CHARS=4000 # User-friendly limit (default) -LLM_CHAR_HARD_LIMIT=50000 # Absolute safety limit -``` - -Lower values = faster processing, lower costs -Higher values = more context, better extraction - -### Quality Filtering - -SCAPO uses LLM-based quality evaluation to filter out generic or irrelevant practices: - -```bash -LLM_QUALITY_THRESHOLD=0.6 # Minimum quality score (0.0-1.0) -``` - -Each extracted practice is evaluated for: -- **Relevance**: Is it specific to the claimed model? -- **Specificity**: Does it provide model-specific guidance? -- **Actionability**: Can users actually apply this advice? - -Recommended values: -- `0.4` - Lenient (more practices, may include generic advice) -- `0.6` - Balanced (default - filters obvious mismatches) -- `0.8` - Strict (only high-quality, model-specific practices) -- `0.9` - Very strict (only exceptional practices) - -### Scraping Configuration - -#### Speed Control -```bash -SCRAPING_DELAY_SECONDS=2 # Delay between pages/posts -``` - -Recommended values: -- `0.5` - Fast mode (testing only!) -- `2.0` - Default (balanced) -- `5.0` - Slow mode (very respectful) -- `10.0` - Ultra-slow (for sensitive sites) - -#### Scheduled Scraping -```bash -SCRAPING_INTERVAL_HOURS=6 # How often to run scheduled scraping -``` - -To use scheduled scraping: -```bash -# Set your desired interval in .env -SCRAPING_INTERVAL_HOURS=12 # Run twice daily - -# Start the scheduler -python -m src.cli schedule -``` - -#### Content Limits -```bash -MAX_POSTS_PER_SCRAPE=100 # Max posts per source -MIN_UPVOTE_RATIO=0.8 # Reddit quality filter (0.0-1.0) -``` - -### Logging Configuration - -```bash -LOG_LEVEL=INFO # Options: DEBUG, INFO, WARNING, ERROR -LOG_FORMAT=json # Options: json, text -``` - -## Performance Tuning - -### Fast Testing Setup -For development and testing: -```bash -SCRAPING_DELAY_SECONDS=0.5 -MAX_POSTS_PER_SCRAPE=5 -LLM_MAX_CHARS=2000 -``` - -### Production Setup -For regular use: -```bash -SCRAPING_DELAY_SECONDS=2 -MAX_POSTS_PER_SCRAPE=50 -LLM_MAX_CHARS=4000 -``` - -### Respectful Scraping Setup -For sensitive sites or when being extra polite: -```bash -SCRAPING_DELAY_SECONDS=5 -MAX_POSTS_PER_SCRAPE=20 -``` - -## OpenRouter Rate Limiting - -The pipeline automatically handles OpenRouter rate limits with: -- Exponential backoff (1s, 2s, 4s...) -- Respects Retry-After headers -- Minimum 0.5s between requests -- Maximum 3 retry attempts - -If you're hitting rate limits frequently, consider: -1. Increasing `SCRAPING_DELAY_SECONDS` -2. Decreasing `MAX_POSTS_PER_SCRAPE` -3. Using a different OpenRouter model -4. Switching to local LLM (Ollama/LM Studio) - -## Local LLM Performance - -For best local LLM performance: - -### Ollama -```bash -# Use quantized models -ollama pull llama3:8b-instruct-q4_0 # Smaller, faster -ollama pull qwen2.5:14b # Larger, better quality - -# Set appropriate context window -LLM_MAX_CHARS=3000 # Don't overwhelm local models -``` - -### LM Studio -- Enable GPU acceleration -- Use GGUF quantized models -- Adjust context length in GUI -- Monitor RAM/VRAM usage - -## Troubleshooting - -### "429 Too Many Requests" Errors -```bash -# Increase delays -SCRAPING_DELAY_SECONDS=5 - -# Or switch to local LLM -LLM_PROVIDER=local -``` - -### Slow Processing -```bash -# Reduce content sent to LLM -LLM_MAX_CHARS=2000 - -# Use faster model -OPENROUTER_MODEL=anthropic/claude-3.5-haiku -``` - -### Memory Issues (Local LLM) -```bash -# Use smaller model or reduce context -LLM_MAX_CHARS=1500 -LOCAL_LLM_MODEL=llama3:7b # Instead of 70b -``` - -## Environment Variable Priority - -Variables are loaded in this order: -1. System environment variables -2. `.env` file -3. Default values in `config.py` - -To override temporarily: -```bash -SCRAPING_DELAY_SECONDS=0.5 python -m src.cli scrape run -``` \ No newline at end of file