# 涂鸦丫 - 素材资源获取方案

> 解决涂色卡、手工模板等非程序化内容的素材生产问题
> 最后更新：2026-03-24

---

## 一、问题背景

涂鸦丫的内容分为两大类：

| 类型           | 示例                         | 生产方式               | 现状      |
| -------------- | ---------------------------- | ---------------------- | --------- |
| **算法生成型** | 数学题、专注力训练、字母练习 | 代码随机生成，无限变化 | ✅ 已具备 |
| **素材模板型** | 涂色卡、折纸、手工、贴纸     | 需要人工绘制或外部素材 | ❌ 缺失   |

素材模板型内容（如圣诞主题涂色卡、动物线稿等）不能用代码程序化生成，传统方式依赖设计师手工绘制，产出效率低、成本高。本文档梳理可行的替代方案，实现素材的低成本批量生产。

---

## 二、方案总览

```
┌──────────────────────────────────────────────────────────────────┐
│                        素材获取策略                                │
│                                                                  │
│  ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌──────────────┐ │
│  │ 方案 1      │ │ 方案 2      │ │ 方案 3      │ │ 方案 4        │ │
│  │ AI 生成线稿 │ │ 开源素材    │ │ 图片转线稿  │ │ 半程序化生成  │ │
│  │ ⭐⭐⭐⭐⭐   │ │ ⭐⭐⭐⭐     │ │ ⭐⭐⭐       │ │ ⭐⭐⭐⭐       │ │
│  │ 性价比最高  │ │ 零成本起步  │ │ 批量转化    │ │ 代码+素材混合 │ │
│  └────────────┘ └────────────┘ └────────────┘ └──────────────┘ │
│                                                                  │
│  ┌────────────┐                                                  │
│  │ 方案 5      │                                                  │
│  │ 社区共创    │                                                  │
│  │ ⭐⭐         │                                                  │
│  │ 远期生态    │                                                  │
│  └────────────┘                                                  │
└──────────────────────────────────────────────────────────────────┘
```

---

## 三、方案详解

### 3.1 AI 生成线稿（推荐，性价比最高）

AI 图像生成工具已经能高质量地生成涂色卡线稿，是目前最推荐的方案。

#### 可用工具

| 工具                            | 特点                              | 成本         | 推荐度     |
| ------------------------------- | --------------------------------- | ------------ | ---------- |
| Midjourney                      | 线稿质量最好，风格一致性强        | ~$10/月      | ⭐⭐⭐⭐⭐ |
| Stable Diffusion (本地/ComfyUI) | 免费，可批量，可训练专属风格 LoRA | 需要 GPU     | ⭐⭐⭐⭐⭐ |
| DALL-E 3 (ChatGPT/API)          | 使用方便，质量不错                | API 按量计费 | ⭐⭐⭐⭐   |
| 可灵 / 通义万相                 | 国内工具，中文 prompt 友好        | 有免费额度   | ⭐⭐⭐     |

#### Prompt 模板

**通用涂色卡：**

```
coloring page for kids, cute [主题词], simple black outline,
no shading, no color, white background, clean lines,
thick outlines suitable for children, cartoon style,
A4 print ready --v 6 --style raw
```

**主题示例：**

```
# 动物系列
coloring page for kids, cute baby elephant playing with water,
simple black outline, no shading, no color, white background,
clean lines, thick outlines, cartoon style --v 6 --style raw

# 节日系列
coloring page for kids, Christmas tree with presents and star,
simple black outline, no shading, no color, white background,
clean lines, thick outlines, cartoon style --v 6 --style raw

# 交通工具系列
coloring page for kids, friendly cartoon fire truck,
simple black outline, no shading, no color, white background,
clean lines, thick outlines, cartoon style --v 6 --style raw
```

#### 批量生产流程

```
┌──────────────────────────────────────────────────────────────┐
│                    AI 线稿生产流水线                            │
│                                                              │
│  ① 规划主题清单                                               │
│     动物(20张) / 恐龙(15张) / 交通(15张) / 节日(20张) /       │
│     食物(10张) / 海洋(15张) / 太空(10张) / ...                │
│                                                              │
│  ② 编写批量 Prompt                                            │
│     为每个主题生成 3-5 个 prompt 变体                          │
│     每个 prompt 生成 4 张 → 筛选最佳 1-2 张                   │
│                                                              │
│  ③ AI 生成                                                    │
│     使用 Midjourney 或 ComfyUI 批量生成                        │
│     预期淘汰率：30-50%                                        │
│                                                              │
│  ④ 人工筛选                                                   │
│     标准：线条清晰 / 无断线 / 适合儿童 / 区域封闭可涂色        │
│                                                              │
│  ⑤ 自动后处理（脚本）                                         │
│     → 二值化（去灰色调，纯黑白）                               │
│     → 去背景噪点                                              │
│     → 统一尺寸（A4 比例 595×842）                              │
│     → 调整线条粗细（适合打印）                                 │
│     → 可选：PNG → SVG 矢量化（Potrace）                       │
│                                                              │
│  ⑥ 质量检查 + 入库                                            │
│     标注元数据（主题/标签/适合年龄/难度）                      │
│     上传云存储                                                │
│                                                              │
│  产能预估：1 人 1 天 → 30-50 张成品线稿                        │
└──────────────────────────────────────────────────────────────┘
```

#### 后处理脚本参考

```python
# tools/process_coloring_page.py
from PIL import Image, ImageFilter
import cv2
import numpy as np

def process_coloring_page(input_path, output_path):
    """将 AI 生成的线稿处理为适合打印的涂色卡"""
    img = cv2.imread(input_path, cv2.IMREAD_GRAYSCALE)

    # 二值化：去除灰色调，保留纯黑线条
    _, binary = cv2.threshold(img, 200, 255, cv2.THRESH_BINARY)

    # 去噪：移除小噪点
    kernel = np.ones((2, 2), np.uint8)
    cleaned = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel)

    # 统一尺寸（A4 at 150 DPI = 1240×1754）
    resized = cv2.resize(cleaned, (1240, 1754), interpolation=cv2.INTER_AREA)

    cv2.imwrite(output_path, resized)

def batch_process(input_dir, output_dir):
    """批量处理目录下所有线稿"""
    import os
    os.makedirs(output_dir, exist_ok=True)
    for filename in os.listdir(input_dir):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            process_coloring_page(
                os.path.join(input_dir, filename),
                os.path.join(output_dir, filename.rsplit('.', 1)[0] + '.png')
            )
```

#### Stable Diffusion 专属风格训练（进阶）

如果需要统一的品牌风格，可以训练 LoRA 模型：

```
1. 收集 20-30 张「涂鸦丫」风格的线稿样本
2. 使用 kohya_ss 训练 LoRA（约 1-2 小时 / 单 GPU）
3. 生成时加载 LoRA → 所有输出风格统一
4. 好处：所有涂色卡风格一致，强化品牌辨识度
```

---

### 3.2 开源 / 免费商用素材

大量免费可商用的线稿资源已经存在，可直接筛选使用。

#### 推荐素材来源

| 来源                                   | 数量      | 授权协议                    | 适合度   | 备注                     |
| -------------------------------------- | --------- | --------------------------- | -------- | ------------------------ |
| [OpenClipart](https://openclipart.org) | 10万+ SVG | CC0（完全免费商用）         | ⭐⭐⭐⭐ | 质量参差，需仔细筛选     |
| [SVG Repo](https://www.svgrepo.com)    | 50万+ SVG | 多为 CC0/MIT                | ⭐⭐⭐   | 以图标为主，部分可做涂色 |
| [Pixabay](https://pixabay.com) 矢量类  | 大量      | Pixabay License（免费商用） | ⭐⭐⭐   | 搜索 "coloring page"     |
| [Freepik](https://www.freepik.com)     | 大量      | 免费需署名 / 付费不需要     | ⭐⭐⭐⭐ | 质量较高                 |
| [Vecteezy](https://www.vecteezy.com)   | 大量      | 免费需署名                  | ⭐⭐⭐   | 有专门的涂色页分类       |
| [unDraw](https://undraw.co)            | 500+ SVG  | MIT                         | ⭐⭐     | 扁平风格插画，需转线稿   |

#### 使用注意事项

```
⚠️ 授权合规清单：
├── CC0 → 完全免费，可商用，无需署名 ✅ 最安全
├── CC BY → 可商用，需要署名（在"关于我们"页注明）
├── CC BY-SA → 可商用，需署名 + 衍生作品同协议
├── CC BY-NC → 不可商用 ❌ 不能用
├── Pixabay License → 可商用，无需署名 ✅
└── 其他 → 需逐一确认，记录授权来源

建议：
1. 优先使用 CC0 素材，避免法律风险
2. 建立素材来源登记表，记录每个素材的出处和授权
3. 使用付费素材时保留购买凭证
```

---

### 3.3 图片 → 线稿转换

将现有的彩色图片自动转换为涂色卡线稿。

#### 工具方案对比

| 方式        | 工具                          | 效果            | 适合场景               |
| ----------- | ----------------------------- | --------------- | ---------------------- |
| AI 风格转换 | SD ControlNet (Canny/Lineart) | ⭐⭐⭐⭐⭐ 最好 | 把卡通插画转为干净线稿 |
| 传统算法    | OpenCV Canny 边缘检测         | ⭐⭐⭐ 一般     | 快速批量处理，需调参   |
| 在线工具    | remove.bg + 线稿转换          | ⭐⭐ 有限       | 零代码快速尝试         |

#### ControlNet 线稿提取流程（推荐）

```
输入：彩色卡通图片
  ↓
Stable Diffusion + ControlNet
  ├── 预处理器：lineart_anime 或 canny
  ├── Prompt：clean line art, black outline, white background,
  │           no shading, coloring page style
  └── 输出：干净的黑白线稿
  ↓
后处理：二值化 → 去噪 → 输出
```

#### OpenCV 批量转换脚本

```python
# tools/photo_to_lineart.py
import cv2
import numpy as np

def photo_to_lineart(input_path, output_path, low=50, high=150, line_width=2):
    """将彩色图片转换为线稿风格"""
    img = cv2.imread(input_path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)

    # Canny 边缘检测
    edges = cv2.Canny(blurred, low, high)

    # 反转颜色（黑线白底）
    inverted = cv2.bitwise_not(edges)

    # 加粗线条
    kernel = np.ones((line_width, line_width), np.uint8)
    thick_lines = cv2.erode(inverted, kernel, iterations=1)

    cv2.imwrite(output_path, thick_lines)
```

**适合场景：** 已购买或已有大量卡通插画素材，需要批量转为涂色卡。

---

### 3.4 半程序化生成（代码 + 素材混合）

部分涂色卡可以用代码生成结构框架，再填充少量素材元素。

#### 可程序化的涂色内容

| 类型                   | 程序化程度 | 实现方式                         | 需要素材       |
| ---------------------- | ---------- | -------------------------------- | -------------- |
| **曼陀罗涂色**         | 100%       | 对称几何图案，数学公式生成       | 无             |
| **几何花纹涂色**       | 100%       | 重复的几何形状拼接               | 无             |
| **字母/数字涂色**      | 90%        | 大号字体轮廓 + 装饰纹理          | 少量纹理       |
| **方格涂色（像素画）** | 100%       | 按编号涂色的方格网，数字标注颜色 | 无             |
| **对称涂色**           | 80%        | 生成半边图案，另一半留空让孩子画 | 半边素材       |
| **场景涂色**           | 50%        | 代码生成天空/地面/分区框架       | 场景元素素材   |
| **节日边框涂色**       | 60%        | 代码生成装饰边框                 | 中心主题图素材 |

#### 曼陀罗涂色卡（100% 代码生成示例）

```
特点：
├── 纯数学生成，零素材成本
├── 无限变化（随机种子）
├── 大人小孩都喜欢
├── 可设置复杂度（简单→复杂）
└── 打印效果非常好

实现思路：
├── 圆形对称：围绕圆心旋转重复图案
├── 基本元素：圆弧、花瓣、水滴形、菱形、锯齿
├── 层级嵌套：内圈简单 → 外圈复杂
└── Canvas 绘制，与现有渲染架构完全兼容
```

#### 按编号涂色（Color by Number，100% 代码生成）

```
特点：
├── 在方格中标注数字，每个数字对应一种颜色
├── 涂完后呈现一幅像素画
├── 纯代码生成（方格 + 数字标注）
├── 可从任意简单图案生成（如爱心、星星、动物剪影）
└── 兼具涂色乐趣和数字认知训练
```

---

### 3.5 社区共创 / UGC（远期）

当用户量达到一定规模后，开放用户投稿。

#### 运作模式

```
┌──────────────────────────────────────────────────────────┐
│                    社区共创流程                              │
│                                                          │
│  投稿者（家长/老师/绘画爱好者）                             │
│    ↓                                                     │
│  上传线稿（照片/扫描件/数字画）                             │
│    ↓                                                     │
│  平台审核（线条清晰度/内容适宜性/版权确认）                  │
│    ↓                                                     │
│  自动后处理（二值化/统一尺寸/质量增强）                      │
│    ↓                                                     │
│  入库上线 → 标注作者署名                                   │
│    ↓                                                     │
│  激励机制：                                               │
│  ├── 展示署名（「由 XX 妈妈投稿」）                        │
│  ├── 积分奖励（可兑换会员时长）                             │
│  └── 热门投稿者榜单                                       │
└──────────────────────────────────────────────────────────┘
```

**启动条件：** DAU > 2000，有稳定的用户社区基础。

---

## 四、推荐执行策略

### 第一阶段：立即可做（0 成本起步）

```
1. 曼陀罗涂色卡 → 纯代码生成，与现有架构兼容
   开发成本：⭐⭐ | 内容产出：无限

2. 按编号涂色 → 纯代码生成
   开发成本：⭐⭐ | 内容产出：无限

3. 开源 CC0 素材 → 从 OpenClipart 筛选 + 后处理
   人力成本：1-2 天筛选出 50 张 | 费用：¥0
```

### 第二阶段：批量生产（小额投入）

```
4. AI 生成线稿 → Midjourney 或 SD 批量生成
   费用：~$10/月 | 产出：每天 30-50 张

5. 建立后处理脚本 → 自动化流水线
   开发成本：1-2 天 | 长期复用

6. 按主题系列化：
   ├── 动物系列（20 张）
   ├── 恐龙系列（15 张）
   ├── 交通工具系列（15 张）
   ├── 海洋生物系列（15 张）
   ├── 春节系列（10 张）
   ├── 圣诞系列（10 张）
   └── ...
```

### 第三阶段：品质升级

```
7. SD LoRA 训练 → 统一「涂鸦丫」品牌风格
8. ControlNet 图转线稿 → 拓展素材来源
9. 半程序化模板 → 代码框架 + AI 素材填充
```

### 第四阶段：生态建设

```
10. 社区投稿机制
11. 素材内容管理后台
12. 节日/季节限定内容运营
```

---

## 五、素材管理规范

### 5.1 文件命名

```
{类别}_{主题}_{编号}.{格式}

示例：
coloring_animal_elephant_001.png
coloring_dinosaur_trex_003.svg
coloring_holiday_christmas_tree_002.png
mandala_geometric_flower_012.png
```

### 5.2 元数据标注

每个素材入库时需标注：

```typescript
interface AssetMeta {
    id: string;
    filename: string;
    category: 'coloring' | 'origami' | 'craft' | 'sticker';
    theme: string; // 主题（animal/dinosaur/holiday/...）
    tags: string[]; // 搜索标签
    ageRange: [number, number];
    difficulty: 1 | 2 | 3; // 线条密度/复杂度
    source: 'ai_generated' | 'open_source' | 'purchased' | 'ugc';
    license: 'CC0' | 'CC-BY' | 'purchased' | 'original';
    author?: string; // 素材作者/来源
    createdAt: string;
}
```

### 5.3 云存储目录

```
cloud://doodle-xxx/assets/
├── coloring/                    ← 涂色卡线稿
│   ├── animals/
│   ├── dinosaurs/
│   ├── vehicles/
│   ├── holidays/
│   │   ├── christmas/
│   │   ├── chinese_new_year/
│   │   └── mid_autumn/
│   ├── ocean/
│   ├── space/
│   ├── food/
│   └── mandala/                 ← 曼陀罗（代码生成的也可存缓存）
├── origami/                     ← 折纸展开图
├── craft/                       ← 手工模板
├── stickers/                    ← 贴纸素材
└── meta/
    └── assets.json              ← 素材元数据索引
```
