chore: commit remaining workspace changes

This commit is contained in:
2026-05-08 21:51:29 +02:00
parent 8d108b8a76
commit ff96ef796e
97 changed files with 18020 additions and 2196 deletions

View File

@@ -28,8 +28,12 @@ class AcademyDemoSeeder extends Seeder
'slug' => 'what-is-ai-assisted-digital-art',
'category_slug' => 'prompting-basics',
'title' => 'What Is AI-Assisted Digital Art?',
'lesson_number' => 1,
'course_order' => 1,
'series_name' => 'AI Art Basics',
'excerpt' => 'A grounded overview of how Skinbase creators can use AI as a creative assistant instead of a shortcut.',
'content' => 'AI-assisted digital art combines prompt-driven ideation, composition decisions, and manual finishing into a single workflow that still depends on taste and intent.',
'tags' => ['ai art', 'basics', 'workflow'],
'difficulty' => 'beginner',
'access_level' => 'free',
'lesson_type' => 'article',
@@ -39,19 +43,42 @@ class AcademyDemoSeeder extends Seeder
'slug' => 'prompting-basics-for-skinbase-creators',
'category_slug' => 'prompting-basics',
'title' => 'Prompting Basics for Skinbase Creators',
'lesson_number' => 2,
'course_order' => 2,
'series_name' => 'AI Art Basics',
'excerpt' => 'Learn how to describe subject, mood, lighting, composition, and finish for Skinbase-native prompt workflows.',
'content' => 'Start with a clear subject. Add mood and lighting. Then anchor the composition for the output you actually want to upload.',
'tags' => ['prompting', 'composition', 'lighting'],
'difficulty' => 'beginner',
'access_level' => 'free',
'lesson_type' => 'article',
'featured' => true,
],
[
'slug' => 'from-prompt-to-finished-artwork',
'category_slug' => 'prompting-basics',
'title' => 'From Prompt to Finished Artwork',
'lesson_number' => 3,
'course_order' => 3,
'series_name' => 'AI Art Basics',
'excerpt' => 'Move from raw generations to polished, upload-ready artwork with a clear finishing workflow.',
'content' => 'Review the generation, choose the best candidate, clean up weak areas, and prepare the final upload with intentional metadata and presentation.',
'tags' => ['editing', 'cleanup', 'publishing'],
'difficulty' => 'beginner',
'access_level' => 'free',
'lesson_type' => 'workflow',
'featured' => true,
],
[
'slug' => 'ai-ethics-and-skinbase-upload-rules',
'category_slug' => 'ai-ethics',
'title' => 'AI Ethics and Skinbase Upload Rules',
'lesson_number' => 7,
'course_order' => 7,
'series_name' => 'AI Art Basics',
'excerpt' => 'Use AI responsibly, label your workflow clearly, and avoid imitation-based prompt packs.',
'content' => 'Respect artists, disclose your workflow, and avoid packaging prompts around living-artist imitation or deceptive attribution.',
'tags' => ['ethics', 'rules', 'publishing'],
'difficulty' => 'beginner',
'access_level' => 'free',
'lesson_type' => 'ethics',
@@ -61,8 +88,12 @@ class AcademyDemoSeeder extends Seeder
'slug' => 'how-to-prepare-ai-artwork-for-upload',
'category_slug' => 'wallpapers',
'title' => 'How to Prepare AI Artwork for Upload',
'lesson_number' => 8,
'course_order' => 8,
'series_name' => 'AI Art Basics',
'excerpt' => 'A cleanup checklist for exporting Academy-ready artwork to Skinbase.',
'content' => 'Check crop, upscale carefully, fix edge artifacts, and export a final image that fits the target category and composition.',
'tags' => ['export', 'quality control', 'upload'],
'difficulty' => 'beginner',
'access_level' => 'free',
'lesson_type' => 'workflow',
@@ -74,6 +105,7 @@ class AcademyDemoSeeder extends Seeder
'title' => 'Advanced Wallpaper Prompt Engineering',
'excerpt' => 'Build prompts that control focal depth, desktop negative space, and repeatable atmosphere.',
'content' => 'Use layered subject directives, desktop-safe composition notes, and finishing instructions to keep wallpapers clean and reusable.',
'tags' => ['wallpapers', 'prompting', 'advanced'],
'difficulty' => 'advanced',
'access_level' => 'creator',
'lesson_type' => 'workflow',
@@ -85,6 +117,7 @@ class AcademyDemoSeeder extends Seeder
'title' => 'Creating Consistent Robot Mascots',
'excerpt' => 'Keep mascot silhouettes, palettes, and expression readable across multiple prompt iterations.',
'content' => 'Define anchor traits first, then preserve them with repeated descriptors and a fixed framing recipe across generations.',
'tags' => ['character design', 'consistency', 'iteration'],
'difficulty' => 'advanced',
'access_level' => 'creator',
'lesson_type' => 'workflow',
@@ -96,6 +129,7 @@ class AcademyDemoSeeder extends Seeder
'title' => 'Building a Skinbase World From Scratch',
'excerpt' => 'Plan a world cover, atmosphere kit, and visual language that feels coherent beyond one image.',
'content' => 'Start from a world premise, define color anchors, then generate covers, teaser crops, and supporting scenes that share the same visual DNA.',
'tags' => ['worldbuilding', 'visual language', 'series'],
'difficulty' => 'pro',
'access_level' => 'pro',
'lesson_type' => 'workflow',
@@ -107,6 +141,7 @@ class AcademyDemoSeeder extends Seeder
'title' => 'Creating Editorial News Cover Images',
'excerpt' => 'Design news cover art that reads fast, supports headlines, and avoids clutter.',
'content' => 'Compose with headline space in mind, simplify the focal idea, and leave enough structure for editorial overlays to stay readable.',
'tags' => ['covers', 'editorial', 'composition'],
'difficulty' => 'pro',
'access_level' => 'pro',
'lesson_type' => 'workflow',
@@ -120,8 +155,12 @@ class AcademyDemoSeeder extends Seeder
[
'category_id' => $categories->get($lesson['category_slug'])?->id,
'title' => $lesson['title'],
'lesson_number' => $lesson['lesson_number'] ?? null,
'course_order' => $lesson['course_order'] ?? null,
'series_name' => $lesson['series_name'] ?? null,
'excerpt' => $lesson['excerpt'],
'content' => $lesson['content'],
'tags' => $lesson['tags'] ?? [],
'difficulty' => $lesson['difficulty'],
'access_level' => $lesson['access_level'],
'lesson_type' => $lesson['lesson_type'],
@@ -161,6 +200,38 @@ class AcademyDemoSeeder extends Seeder
}
}
$plannedLessonUpdates = [
'writing-better-wallpaper-prompts' => [
'lesson_number' => 4,
'course_order' => 4,
'series_name' => 'AI Art Basics',
],
'style-mood-lighting-and-composition' => [
'lesson_number' => 5,
'course_order' => 5,
'series_name' => 'AI Art Basics',
],
'negative-prompts-and-quality-control' => [
'lesson_number' => 6,
'course_order' => 6,
'series_name' => 'AI Art Basics',
],
'titles-tags-categories-and-discovery' => [
'lesson_number' => 9,
'course_order' => 9,
'series_name' => 'AI Art Basics',
],
'from-idea-to-artwork-a-simple-skinbase-workflow' => [
'lesson_number' => 10,
'course_order' => 10,
'series_name' => 'AI Art Basics',
],
];
foreach ($plannedLessonUpdates as $slug => $attributes) {
AcademyLesson::query()->where('slug', $slug)->update($attributes);
}
$prompts = [
[
'slug' => 'fantasy-floating-island-wallpaper',