journal-illustrator
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseJournal Illustrator - Illustration automatique des aventures
日志插画生成器 - 冒险内容自动插画生成
Skill pour générer des illustrations basées sur le journal d'une aventure BFRPG. Analyse les entrées du journal et génère des images appropriées pour chaque type d'événement.
一款基于BFRPG冒险日志生成插画的Skill。它会分析日志条目,并为每种事件类型生成合适的图像。
Prérequis
前置条件
Variables d'environnement :
bash
undefined环境变量 :
bash
undefinedRequis pour la génération d'images
图像生成所需
export FAL_KEY="votre_clé_api_fal"
export FAL_KEY="votre_clé_api_fal"
Optionnel pour l'enrichissement AI des descriptions
AI增强描述可选配置
export ANTHROPIC_API_KEY="votre_clé_anthropic"
undefinedexport ANTHROPIC_API_KEY="votre_clé_anthropic"
undefinedUtilisation des Descriptions Enrichies (Recommandé)
使用增强描述(推荐)
Pour de meilleurs résultats, enrichissez d'abord votre journal avec des descriptions détaillées avant de générer les images :
bash
undefined为获得最佳效果,请在生成图像前先为日志添加详细的增强描述:
bash
undefined1. Enrichir le journal avec des descriptions IA (30-50 mots)
1. 用AI增强日志描述(30-50词)
./sw-adventure enrich "la-crypte-des-ombres"
./sw-adventure enrich "la-crypte-des-ombres"
2. Générer les images (utilise automatiquement les descriptions enrichies)
2. 生成图像(自动使用增强后的描述)
./sw-image journal "la-crypte-des-ombres"
**Avantages de l'enrichissement** :
- ✅ Descriptions détaillées (30-50 mots vs 5-10 mots)
- ✅ Contexte riche : personnages, lieux, atmosphère
- ✅ Images plus fidèles aux événements du jeu
- ✅ Automatique : utilise l'historique récent et la composition du groupe
**Sans enrichissement**, le système utilise le champ `content` (court, générique)../sw-image journal "la-crypte-des-ombres"
**增强描述的优势** :
- ✅ 详细的描述内容(30-50词 vs 5-10词)
- ✅ 丰富的上下文:人物、场景、氛围
- ✅ 图像与游戏事件更贴合
- ✅ 自动化:使用近期历史记录和团队构成
**不使用增强描述**时,系统会使用`content`字段(简短、通用)。Utilisation Rapide
快速使用
bash
undefinedbash
undefinedCompiler si nécessaire
如有需要先编译
go build -o sw-image ./cmd/image
go build -o sw-image ./cmd/image
Voir les prompts qui seraient générés (sans générer d'images)
查看将生成的提示词(不实际生成图像)
./sw-image journal "la-crypte-des-ombres" --dry-run
./sw-image journal "la-crypte-des-ombres" --dry-run
Générer toutes les illustrations
生成所有插画
./sw-image journal "la-crypte-des-ombres"
./sw-image journal "la-crypte-des-ombres"
Reprendre depuis un ID spécifique (utile pour éviter les régénérations)
从指定ID开始生成(避免重复生成)
./sw-image journal "la-crypte-des-ombres" --start-id=60
./sw-image journal "la-crypte-des-ombres" --start-id=60
Limiter le nombre d'images
限制生成图像数量
./sw-image journal "la-crypte-des-ombres" --max=5
./sw-image journal "la-crypte-des-ombres" --max=5
Filtrer par type d'événement
按事件类型过滤
./sw-image journal "la-crypte-des-ombres" --types=combat,discovery
undefined./sw-image journal "la-crypte-des-ombres" --types=combat,discovery
undefinedTypes d'Événements Illustrables
可生成插画的事件类型
| Type | Description | Style | Taille |
|---|---|---|---|
| Scènes de combat et batailles | Epic | landscape_16_9 |
| Exploration de lieux | Painted | landscape_16_9 |
| Découvertes et révélations | Dark Fantasy | landscape_4_3 |
| Trésors trouvés | Painted | square_hd |
| Résumés de fin de session | Epic | landscape_16_9 |
| 类型 | 描述 | 风格 | 尺寸 |
|---|---|---|---|
| 战斗场景与战役 | Epic | landscape_16_9 |
| 场景探索 | Painted | landscape_16_9 |
| 发现与揭秘 | Dark Fantasy | landscape_4_3 |
| 发现的宝藏 | Painted | square_hd |
| 会话总结 | Epic | landscape_16_9 |
Options
选项
bash
--types=<types> # Types à illustrer (combat,exploration,discovery,loot,session)
--start-id=<n> # ID de départ pour reprendre depuis une entrée spécifique (optionnel)
--max=<n> # Nombre maximum d'images à générer
--parallel=<n> # Niveau de parallélisme (1-8, défaut: 4)
--model=<model> # Modèle fal.ai (schnell, banana, pulid) défaut: schnell
--consistency # Utiliser la cohérence de personnage (défaut: true avec pulid)
--dry-run # Afficher les prompts sans générer d'imagesbash
--types=<types> # 要生成插画的类型(combat,exploration,discovery,loot,session)
--start-id=<n> # 从指定条目ID开始生成(可选)
--max=<n> # 最大生成图像数量
--parallel=<n> # 并行生成级别(1-8,默认:4)
--model=<model> # fal.ai模型(schnell, banana, pulid)默认:schnell
--consistency # 使用人物一致性(默认:与pulid模型配合启用)
--dry-run # 显示提示词但不生成图像Modèles Disponibles
可用模型
| Modèle | Vitesse | Coût/image | Cohérence de personnage |
|---|---|---|---|
| ~3s | ~$0.003 | Non |
| ~5s | ~$0.039 | Non |
| ~4s | ~$0.003-0.04 | Oui (requiert images de référence) |
| 模型 | 速度 | 单图成本 | 人物一致性 |
|---|---|---|---|
| ~3秒 | ~$0.003 | 否 |
| ~5秒 | ~$0.039 | 否 |
| ~4秒 | ~$0.003-0.04 | 是(需要参考图像) |
Exemples d'Utilisation
使用示例
Prévisualiser les illustrations
预览插画提示词
bash
./sw-image journal "la-crypte-des-ombres" --dry-runAffiche tous les prompts qui seraient utilisés, avec le style et la taille de chaque image.
bash
./sw-image journal "la-crypte-des-ombres" --dry-run显示所有将使用的提示词,以及每张图像的风格和尺寸。
Illustrer uniquement les combats
仅生成战斗场景插画
bash
./sw-image journal "la-crypte-des-ombres" --types=combatbash
./sw-image journal "la-crypte-des-ombres" --types=combatGénérer les 10 premières illustrations
生成前10张插画
bash
./sw-image journal "la-crypte-des-ombres" --max=10bash
./sw-image journal "la-crypte-des-ombres" --max=10Génération plus rapide (8 images en parallèle)
更快生成(8张图像并行)
bash
./sw-image journal "la-crypte-des-ombres" --parallel=8bash
./sw-image journal "la-crypte-des-ombres" --parallel=8Reprendre depuis un ID spécifique
从指定ID继续生成
bash
undefinedbash
undefinedPremière génération jusqu'à l'ID 59
首次生成到ID 59
./sw-image journal "la-crypte-des-ombres" --max=15
./sw-image journal "la-crypte-des-ombres" --max=15
Reprendre depuis l'ID 60 pour éviter les régénérations
从ID 60开始继续,避免重复生成
./sw-image journal "la-crypte-des-ombres" --start-id=60
Utile après une nouvelle session pour illustrer uniquement les nouvelles entrées du journal../sw-image journal "la-crypte-des-ombres" --start-id=60
适用于新会话后,仅为新增日志条目生成插画。Sortie
输出
Les images sont sauvegardées dans le répertoire de l'aventure :
data/adventures/la-crypte-des-ombres/images/
├── image_1703001234567890123.png # Combat contre les squelettes
├── image_1703001234567890124.png # Exploration du mausolée
├── image_1703001234567890125.png # Découverte du parchemin
└── ...图像将保存到冒险目录下:
data/adventures/la-crypte-des-ombres/images/
├── image_1703001234567890123.png # 与骷髅战斗
├── image_1703001234567890124.png # 探索陵墓
├── image_1703001234567890125.png # 发现卷轴
└── ...Comparaison : Avec vs Sans Enrichissement
对比:使用增强描述 vs 不使用
Exemple : Entrée de type "combat"
示例:“战斗”类型条目
Sans enrichissement (champ ) :
contentContent: "Combat contre 3 gobelins"
Prompt généré:
"Epic fantasy battle scene: Combat contre 3 gobelins. Dynamic action, dramatic
lighting, cinematic fantasy art, heroic pose"Avec enrichissement (champ ) :
descriptionDescription EN: "Aldric and Lyra battle three goblins in a torch-lit stone
corridor, steel clashing against crude blades as shadows dance on moss-covered
walls"
Prompt généré:
"Epic fantasy battle scene: Aldric and Lyra battle three goblins in a torch-lit
stone corridor, steel clashing against crude blades as shadows dance on moss-
covered walls. Dynamic action, dramatic lighting, cinematic fantasy art,
heroic pose"Résultat : L'image enrichie montrera les personnages nommés (Aldric, Lyra),
l'environnement spécifique (couloir de pierre, torches, mousse), et l'atmosphère
exacte du combat !
不使用增强描述(字段) :
contentContent: "与3个哥布林战斗"
生成的提示词:
"Epic fantasy battle scene: Combat contre 3 gobelins. Dynamic action, dramatic
lighting, cinematic fantasy art, heroic pose"使用增强描述(字段) :
description英文描述: "Aldric and Lyra battle three goblins in a torch-lit stone
corridor, steel clashing against crude blades as shadows dance on moss-covered
walls"
生成的提示词:
"Epic fantasy battle scene: Aldric and Lyra battle three goblins in a torch-lit
stone corridor, steel clashing against crude blades as shadows dance on moss-
covered walls. Dynamic action, dramatic lighting, cinematic fantasy art,
heroic pose"结果:增强后的图像会显示指定的人物(Aldric、Lyra)、具体环境(石质走廊、火把、苔藓墙),以及战斗的真实氛围!
Cohérence de Personnage (Character Consistency)
人物一致性(Character Consistency)
Le journal illustrator supporte la cohérence des personnages via FLUX PuLID :
日志插画生成器支持通过FLUX PuLID实现人物一致性:
Prérequis
前置条件
- Apparences des personnages définies via
sw-character appearance - Images de référence définies via
sw-character set-reference
- 通过定义人物外观
sw-character appearance - 通过设置参考图像
sw-character set-reference
Utilisation
使用方法
bash
undefinedbash
undefinedConfiguration de l'apparence d'un personnage
配置人物外观
./sw-character appearance "Aldric"
--age=34
--build=muscular
--armor="plate armor"
--weapon=longsword
--age=34
--build=muscular
--armor="plate armor"
--weapon=longsword
./sw-character appearance "Aldric"
--age=34
--build=muscular
--armor="plate armor"
--weapon=longsword
--age=34
--build=muscular
--armor="plate armor"
--weapon=longsword
Définir l'image de référence (portrait frontal recommandé)
设置参考图像(推荐正面肖像)
./sw-character set-reference "Aldric" path/to/aldric_portrait.png
./sw-character set-reference "Aldric" path/to/aldric_portrait.png
Génération standard (sans cohérence)
标准生成(无一致性)
./sw-image journal "adventure" --model=schnell
./sw-image journal "adventure" --model=schnell
Avec cohérence de personnage (requiert images de référence)
启用人物一致性(需要参考图像)
./sw-image journal "adventure" --model=pulid --consistency
undefined./sw-image journal "adventure" --model=pulid --consistency
undefinedComment Ça Marche
工作原理
- Charge les personnages du groupe d'aventure
- Identifie le personnage principal par entrée du journal (mention du nom ou défaut au leader)
- Utilise l'image de référence du personnage avec FLUX PuLID
- Injecte des descriptions courtes de personnages au lieu de répéter le texte complet
- 加载冒险团队的人物信息
- 识别每条日志条目中的主要人物(提及姓名或默认团队领袖)
- 使用人物参考图像配合FLUX PuLID
- 注入简短的人物描述,而非重复完整文本
Exemple de Différence de Prompt
提示词差异示例
Sans cohérence :
Epic fantasy battle scene: Aldric the human fighter (34 years old, muscular build,
black hair, bearded, wearing plate armor) and Lyra the elf magic-user (young,
slender, long silver hair) battle three goblins...Avec cohérence :
Epic fantasy battle scene featuring Aldric (human fighter, plate armor, longsword),
Lyra (elf magic-user, staff): The heroes battle three goblins in a torch-lit corridor...L'image de référence garantit que le visage d'Aldric correspond à travers toutes les images.
无一致性 :
Epic fantasy battle scene: Aldric the human fighter (34 years old, muscular build,
black hair, bearded, wearing plate armor) and Lyra the elf magic-user (young,
slender, long silver hair) battle three goblins...有人物一致性 :
Epic fantasy battle scene featuring Aldric (human fighter, plate armor, longsword),
Lyra (elf magic-user, staff): The heroes battle three goblins in a torch-lit corridor...参考图像确保Aldric的面容在所有图像中保持一致。
Avantages
提示词适配
- ✅ Visages cohérents des personnages à travers toutes les images du journal
- ✅ Réduction des prompts (pas besoin de répéter les descriptions complètes)
- ✅ Coût similaire à schnell (~$0.003-0.04/image)
- ✅ Fallback automatique si l'image de référence est manquante
生成器会根据事件类型自动调整提示词:
Adaptation des Prompts
战斗
Le générateur adapte automatiquement les prompts selon le type d'événement :
- 前缀:"Epic fantasy battle scene"
- 风格:Epic(电影感、戏剧化光影、英雄姿态)
- 附加内容:"dynamic action, dramatic lighting"
Combat
探索
- Préfixe : "Epic fantasy battle scene"
- Style : Epic (cinematic, dramatic lighting, heroic pose)
- Ajouts : "dynamic action, dramatic lighting"
- 前缀:"Fantasy adventurers exploring"
- 风格:Painted(油画风格、丰富色彩)
- 附加内容:"atmospheric, mysterious"
Exploration
发现
- Préfixe : "Fantasy adventurers exploring"
- Style : Painted (oil painting, rich colors)
- Ajouts : "atmospheric, mysterious"
- 前缀:"Moment of discovery in a dungeon"
- 风格:Dark Fantasy(阴郁光影、阴影)
- 附加内容:"revealing light, magical glow"
Discovery
宝藏
- Préfixe : "Moment of discovery in a dungeon"
- Style : Dark Fantasy (moody lighting, shadows)
- Ajouts : "revealing light, magical glow"
- 前缀:"Fantasy treasure"
- 风格:Painted
- 附加内容:"glittering gold, magical items"
Loot
会话(结束)
- Préfixe : "Fantasy treasure"
- Style : Painted
- Ajouts : "glittering gold, magical items"
- 自动检测胜利/失败
- 相应调整氛围
- 胜利:"triumphant heroes, celebration"
- 失败:"somber scene, aftermath of battle"
Session (fin)
成本
- Détecte automatiquement victoire/défaite
- Ajuste l'ambiance en conséquence
- Victoire : "triumphant heroes, celebration"
- Défaite : "somber scene, aftermath of battle"
使用fal.ai的FLUX.1 [schnell]模型:
- 单图约$0.003
- 22条日志条目 = ~$0.07
- 每美元约可生成300张图像
Coûts
性能
Avec FLUX.1 [schnell] via fal.ai :
- ~$0.003 par image
- 22 entrées de journal = ~$0.07
- ~300 images par dollar
借助并行生成技术:
- 串行生成:22张图像 × 3秒 = ~66秒
- 4并行:22张图像 / 4 × 3秒 = ~17秒
- 8并行:22张图像 / 8 × 3秒 = ~9秒
Performance
推荐工作流
—
选项A:使用AI增强描述(推荐)
Grâce à la génération parallèle :
- Séquentiel : 22 images × 3 sec = ~66 secondes
- Parallèle (4) : 22 images / 4 × 3 sec = ~17 secondes
- Parallèle (8) : 22 images / 8 × 3 sec = ~9 secondes
-
增强日志:生成详细描述bash
./sw-adventure enrich "mon-aventure" --dry-run # 预览 ./sw-adventure enrich "mon-aventure" # 执行增强 -
先执行Dry-run:检查增强后的提示词bash
./sw-image journal "mon-aventure" --dry-run -
有限测试:生成少量图像验证效果bash
./sw-image journal "mon-aventure" --max=3 -
完整生成:若满意则生成全部图像bash
./sw-image journal "mon-aventure"
Workflow Recommandé
选项B:不使用增强描述(快速,但精度较低)
Option A : Avec enrichissement AI (recommandé)
—
-
Enrichir le journal : Générer des descriptions détailléesbash
./sw-adventure enrich "mon-aventure" --dry-run # Prévisualiser ./sw-adventure enrich "mon-aventure" # Enrichir -
Dry-run d'abord : Vérifier les prompts enrichisbash
./sw-image journal "mon-aventure" --dry-run -
Test limité : Générer quelques images pour validerbash
./sw-image journal "mon-aventure" --max=3 -
Génération complète : Si satisfait, générer toutbash
./sw-image journal "mon-aventure"
-
先执行Dry-run:检查提示词bash
./sw-image journal "mon-aventure" --dry-run -
完整生成:使用字段(简短内容)
contentbash./sw-image journal "mon-aventure"
Option B : Sans enrichissement (rapide, mais moins précis)
与Adventure Manager集成
-
Dry-run d'abord : Vérifier les promptsbash
./sw-image journal "mon-aventure" --dry-run -
Génération complète : Utilise le champ(court)
contentbash./sw-image journal "mon-aventure"
游戏会话结束后,使用该Skill创建可视化总结:
bash
undefinedIntégration avec Adventure Manager
结束会话
Après une session de jeu, utilisez cette skill pour créer un résumé visuel :
bash
undefined./sw-adventure end-session "Mon Aventure" "Victoire contre le boss !"
Terminer la session
为日志生成插画
./sw-adventure end-session "Mon Aventure" "Victoire contre le boss !"
./sw-image journal "mon-aventure" --types=combat,discovery
undefinedIllustrer le journal
使用方
./sw-image journal "mon-aventure" --types=combat,discovery
undefined该Skill被以下Agent使用:
| Agent | 用途 |
|---|---|
| 自动为冒险日志生成插画 |
类型 : 独立Skill,可通过直接调用
/journal-illustrator依赖 : 使用(读取日志)和(生成图像)
adventure-managerimage-generatorUtilisé par
—
Ce skill est utilisé par les agents suivants :
| Agent | Usage |
|---|---|
| Illustration automatique des journaux d'aventure |
Type : Skill autonome, peut être invoqué directement via
/journal-illustratorDépendances : Utilise (lecture du journal) et (génération d'images)
adventure-managerimage-generator—