{"id":22956889,"url":"https://github.com/marketcalls/sketchmaker","last_synced_at":"2025-08-13T03:32:52.194Z","repository":{"id":253186363,"uuid":"837594911","full_name":"marketcalls/sketchmaker","owner":"marketcalls","description":"Self Hostable - Digital Creative Machine for your Teams","archived":false,"fork":false,"pushed_at":"2025-06-17T03:40:00.000Z","size":76327,"stargazers_count":30,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-17T04:28:10.288Z","etag":null,"topics":["chatgpt4o","daisyui","flask","flux","flux-dev","flux-realism","fluxpro","fluxpro-ultra","lora","python","recraftv3","redpanda","sqlitedb","tailwindcss"],"latest_commit_sha":null,"homepage":"https://sketch.marketcalls.in","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marketcalls.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-03T12:42:30.000Z","updated_at":"2025-06-17T03:40:04.000Z","dependencies_parsed_at":"2024-11-11T12:22:59.676Z","dependency_job_id":"d2f21ece-87f1-466b-a57b-2852171af86f","html_url":"https://github.com/marketcalls/sketchmaker","commit_stats":null,"previous_names":["marketcalls/sketchmaker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marketcalls/sketchmaker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marketcalls%2Fsketchmaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marketcalls%2Fsketchmaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marketcalls%2Fsketchmaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marketcalls%2Fsketchmaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marketcalls","download_url":"https://codeload.github.com/marketcalls/sketchmaker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marketcalls%2Fsketchmaker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270175826,"owners_count":24540093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt4o","daisyui","flask","flux","flux-dev","flux-realism","fluxpro","fluxpro-ultra","lora","python","recraftv3","redpanda","sqlitedb","tailwindcss"],"created_at":"2024-12-14T17:12:58.964Z","updated_at":"2025-08-13T03:32:47.171Z","avatar_url":"https://github.com/marketcalls.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sketch Maker AI\n\nA sophisticated web application that leverages multiple AI providers and models to generate artwork, banners, and custom visual content from text descriptions. Features include custom model training, multiple format support, and a comprehensive gallery system.\n\n![SketchMaker AI Dashboard](https://marketcalls.in/wp-content/uploads/2024/11/SketchMaker-AI.webp)\n\n## Core Features\n\n### Multi-Provider AI Support\n- OpenAI: Advanced language models for prompt enhancement\n- Anthropic: State-of-the-art language models with Claude capabilities\n- Google Gemini: Next-generation AI with multimodal understanding\n- Groq: High-performance inference with ultra-low latency\n\n![AI Generated Social Media Expert](https://marketcalls.in/wp-content/uploads/2024/08/The-Social-Media-Expert.png)\n\n### Banner Generation\n- SVG banner creation with precise control\n- Multiple style presets (modern, minimalist, artistic, corporate, playful, tech, elegant)\n- Dynamic text alignment and positioning\n- Automatic viewBox and preserveAspectRatio handling\n- Support for gradients, patterns, and effects\n\n![AI Generated Banner](https://marketcalls.in/wp-content/uploads/2024/08/Converge-2024.jpg)\n\n### Image Generation (FAL Integration)\n- Flux Pro: High-quality standard image generation\n- Flux Pro Ultra: Advanced generation with aspect ratio control\n- Flux Lora: Custom model training support\n- Flux Dev: Development and testing environment\n- Flux Realism: Enhanced photorealistic generation\n- Recraft V3: Advanced style control with color customization\n\n![AI Generated LinkedIn Headshot](https://marketcalls.in/wp-content/uploads/2024/08/0f811820-55c0-4f5d-823a-967ed102ba64.webp)\n\n### Custom Model Training\n- Support for 5-20 training images\n- Automatic mask generation\n- Real-time training progress monitoring\n- Webhook integration for status updates\n- Training history management\n- Easy access to trained model files\n- Trigger word management\n\n![AI Generated Thumbnail](https://marketcalls.in/wp-content/uploads/2024/08/thumbnail-1.png)\n\n### Gallery \u0026 Asset Management\n- Personal image galleries\n- Multiple format support (WebP, PNG, JPEG)\n- Automatic format conversion\n- Secure download system\n- Image metadata tracking\n- Creation history\n\n![AI Generated Art](https://marketcalls.in/wp-content/uploads/2024/08/bannana.jpeg)\n\n### Advanced Security\n- Role-based access control (User/Admin/Superadmin)\n- Secure API key management\n- Rate limiting protection\n- First-user superadmin privileges\n- User account management\n- Activity monitoring\n\n### Authentication System\n- Multiple authentication methods:\n  * Regular username/password authentication\n  * Google OAuth integration\n  * Configurable authentication controls\n- Admin authentication controls:\n  * Enable/disable regular authentication\n  * Enable/disable Google authentication\n  * Configure Google OAuth credentials\n  * Manage authentication settings through admin interface\n- Google OAuth features:\n  * Secure OAuth 2.0 implementation\n  * Automatic account creation for new Google users\n  * Account linking for existing users\n  * Profile information synchronization\n  * Secure callback handling\n- Authentication security:\n  * Password strength requirements\n  * Secure password hashing\n  * Rate limiting on login attempts\n  * Session management\n  * Account recovery options\n\n### Email System\n- Support for both SMTP and Amazon SES\n- HTML email templates\n- Welcome emails for new users\n- Password reset functionality with OTP\n- Test email functionality\n- Email service status monitoring\n\n### User Management\n- User registration with approval system\n- Role management (User/Admin/Superadmin)\n- Account status control\n- Password reset with email verification\n- User search functionality\n- Bulk user management\n\n## Tech Stack\n\n### Backend\n- Python 3.12+\n- Flask Web Framework\n- SQLAlchemy ORM\n- Flask-Login for authentication\n- Flask-Limiter for rate limiting\n- Boto3 for AWS services\n- Multiple AI provider SDKs\n\n### Frontend\n- HTML5/CSS3\n- JavaScript (ES6+)\n- DaisyUI components\n- Tailwind CSS\n- GSAP animations\n- Responsive design\n\n![AI Generated Portrait](https://marketcalls.in/wp-content/uploads/2024/08/Man-with-a-Cat.jpg)\n\n### Database\n- SQLite (development)\n- PostgreSQL (production ready)\n\n### Email Services\n- SMTP support\n- Amazon SES integration\n- HTML email templates\n- Email queue management\n\n### Security\n- Rate limiting\n- Secure password hashing\n- Role-based access control\n- API key management\n\n### Development Tools\n- Python virtual environment\n- Git version control\n- VSCode integration\n\n## Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/marketcalls/sketchmaker.git\ncd sketchmaker\n```\n\n2. Create and activate virtual environment:\n```bash\npython -m venv venv\nsource venv/bin/activate  # Windows: venv\\Scripts\\activate\n```\n\n3. Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n4. Initialize the database:\n```bash\nflask shell\n\u003e\u003e\u003e from app import db\n\u003e\u003e\u003e db.create_all()\n\u003e\u003e\u003e exit()\n```\n\n5. Run the application:\n```bash\npython app.py\n```\n\n## Configuration\n\n### Authentication Configuration\nConfigure authentication settings in the admin interface (/admin/manage/auth):\n\n#### Regular Authentication\n- Enable/disable username/password authentication\n- Configure password requirements\n- Manage user registration settings\n\n#### Google OAuth Setup\n1. Go to [Google Cloud Console](https://console.cloud.google.com)\n2. Create a new project or select existing one\n3. Configure OAuth consent screen:\n   - Select \"External\" user type\n   - Add required app information\n   - Add scopes: email and profile\n4. Create OAuth credentials:\n   - Create OAuth client ID\n   - Select \"Web application\"\n   - Add authorized JavaScript origins:\n     ```\n     http://localhost:5000 (development)\n     https://your-domain.com (production)\n     ```\n   - Add authorized redirect URIs:\n     ```\n     http://localhost:5000/auth/google/callback (development)\n     https://your-domain.com/auth/google/callback (production)\n     ```\n5. Copy Client ID and Client Secret\n6. Configure in admin interface:\n   - Enable Google authentication\n   - Add Google Client ID\n   - Add Google Client Secret\n\n### Required API Keys\nConfigure these in the admin settings after first login:\n- OpenAI, Anthropic, Google Gemini, Groq API key (configure any one)\n- FAL API key\n\n### Email Configuration\nConfigure either SMTP or Amazon SES:\n\n#### SMTP Settings\n- SMTP Host\n- SMTP Port\n- SMTP Username\n- SMTP Password\n- TLS Support\n\n#### Amazon SES Settings\n- AWS Access Key\n- AWS Secret Key\n- AWS Region\n\n## Usage Guide\n\n1. Initial Setup:\n   - Register first user (becomes superadmin)\n   - Configure API keys in settings\n   - Set up email service\n   - Configure authentication methods\n   - Set up Google OAuth (if needed)\n   - Select preferred AI provider\n\n2. Content Generation:\n   - Create banners with custom styles\n   - Generate images with various models\n   - Train custom models\n   - Manage gallery content\n\n3. Admin Functions:\n   - Manage users and roles\n   - Configure email settings\n   - Configure authentication settings\n   - Monitor system settings\n   - Track user activity\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the AGPL v3.0 License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\n[marketcalls](https://github.com/marketcalls)\n\n## Credits\n\n### Icons and Images\n- Favicon and logo: [Sketch book icons created by RA_IC0N21 - Flaticon](https://www.flaticon.com/packs/design-thinking-14670943)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarketcalls%2Fsketchmaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarketcalls%2Fsketchmaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarketcalls%2Fsketchmaker/lists"}