Expand card worlds beyond medieval fantasy
This commit is contained in:
@@ -107,26 +107,34 @@ function damageSpec(stage) {
|
||||
|
||||
function promptFor(character, stage) {
|
||||
const spec = damageSpec(stage);
|
||||
const elementName = character.affinity;
|
||||
const elementName = {
|
||||
water: "water/수",
|
||||
metal: "metal/금",
|
||||
earth: "earth/지",
|
||||
fire: "fire/화",
|
||||
wood: "wood/목",
|
||||
}[character.affinity] ?? character.affinity;
|
||||
const adultAppeal =
|
||||
"adult female fantasy pinup appeal: emphasize large breasts through armor/clothing silhouette, curvy mature body proportions, elegant sensual costume design";
|
||||
"adult female collectible-card appeal: emphasize large breasts through the armor, uniform, stage outfit, or gear silhouette; curvy mature body proportions; elegant sensual costume design";
|
||||
return [
|
||||
"Use case: stylized-concept",
|
||||
"Asset type: high-resolution individual trading card illustration",
|
||||
`Primary request: Create a unique full-card illustration for ${character.id} ${character.name}, damage stage ${stage} (${spec.label}).`,
|
||||
`Subject: adult ${character.gender} ${character.race}, ${character.body}, ${character.title}, ${character.role}, weapon ${character.weapon}.`,
|
||||
`Subject: adult ${character.gender} ${character.race}, ${character.body}, ${character.title}, ${character.role}, weapon/equipment ${character.weapon}.`,
|
||||
`World/era concept: ${character.world}; ${character.era}. This roster is not limited to medieval fantasy; characters can come from modern campuses, idol stages, cyberpunk streets, space colonies, sports arenas, mythic fashion worlds, or other time periods.`,
|
||||
`Signature costume/equipment: ${character.costume}.`,
|
||||
`Unique appearance DNA: ${character.appearance.faceShape}; ${character.appearance.eyeStyle}; ${character.appearance.noseStyle}; ${character.appearance.lipStyle}; ${character.appearance.skinTone}; ${character.appearance.hairStyle}; ${character.appearance.bodyDetail}; ${character.appearance.bustShape}; ${character.appearance.presence}. Make this face and body clearly different from other cards.`,
|
||||
`Personality and pose: ${character.personality}; ${character.pose}; ${spec.poseNote}.`,
|
||||
`Facial expression: ${spec.expression}.`,
|
||||
`Camera/view variation: ${spec.camera}. Across a character's five damage stages, avoid repeating the same straight-front pose; include front, side, and rear three-quarter views where appropriate.`,
|
||||
`Adult visual appeal: ${character.appealFocus}; ${adultAppeal}.`,
|
||||
`Scene/backdrop: fantasy duel arena with ${elementName} elemental atmosphere, no other characters.`,
|
||||
"Style/medium: polished semi-real painterly TCG key art, high-detail Korean/Asian fantasy mixed with global high-fantasy design, portrait card composition.",
|
||||
`Scene/backdrop: ${character.scene}; ${elementName} elemental atmosphere; no other characters.`,
|
||||
`Style/medium: ${character.style}, portrait card composition.`,
|
||||
"Composition/framing: full body or knees-up character centered, strong silhouette, vertical card art, cinematic but readable.",
|
||||
`Damage state: ${spec.visual}.`,
|
||||
`Missing armor/clothing emphasis: ${spec.missingArmor}. Emphasize battle intensity through missing hand, foot, shoulder, and abdomen armor where appropriate.`,
|
||||
`Continuity: keep this character's face, body type, race, weapon, color motif, outfit silhouette, and elemental identity consistent across all five damage stages.`,
|
||||
"Constraints: all characters are adults; adult-oriented fantasy card art; sensual silhouette, nudity, and body exposure are allowed when framed as battle damage or defeat; pain expressions, tears, gasping, and small saliva/drool details must read as combat injury reactions; no sexual act; no penetration; no gore; no text; no logo; no watermark.",
|
||||
`Missing gear/clothing emphasis: ${spec.missingArmor}. Emphasize battle intensity through missing or damaged hand, foot, shoulder, abdomen, hip, and torso gear where appropriate, adapting the damage to this character's era and outfit.`,
|
||||
`Continuity: keep this character's face, body type, race, weapon/equipment, world/era, costume silhouette, color motif, and elemental identity consistent across all five damage stages.`,
|
||||
"Constraints: all characters are adults; adult-oriented multi-world card art; sensual silhouette, nudity, and body exposure are allowed when framed as battle damage or defeat; pain expressions, tears, gasping, and small saliva/drool details must read as combat injury reactions; no sexual act; no penetration; no gore; no text; no logo; no watermark.",
|
||||
"Avoid: childlike appearance, underage cues, malformed hands, extra limbs, cropped head, UI elements.",
|
||||
].join("\n");
|
||||
}
|
||||
@@ -156,6 +164,11 @@ globalThis.__cardExport = {
|
||||
personality: character.personality,
|
||||
pose: character.pose,
|
||||
origin: character.origin,
|
||||
world: character.world,
|
||||
era: character.era,
|
||||
scene: character.scene,
|
||||
costume: character.costume,
|
||||
style: character.style,
|
||||
damageProfile: character.damageProfile,
|
||||
appealFocus: character.appealFocus,
|
||||
appearance: character.appearance,
|
||||
@@ -178,7 +191,7 @@ const manifest = {
|
||||
})),
|
||||
expectedImageCount: exported.characters.length * exported.damageStages,
|
||||
imageSizeTarget: "portrait high resolution, 2048x3072 or better for final production",
|
||||
safetyStyle: "adult-oriented fantasy pinup combat damage; emphasized mature silhouettes, nudity/body exposure allowed as battle-damage presentation; no minors, sexual acts, penetration, or gore",
|
||||
safetyStyle: "adult-oriented multi-world pinup combat damage; emphasized mature silhouettes, nudity/body exposure allowed as battle-damage presentation; no minors, sexual acts, penetration, or gore",
|
||||
characters: exported.characters.map((character) => ({
|
||||
...character,
|
||||
art: Array.from({ length: exported.damageStages }, (_, stage) => ({
|
||||
|
||||
Reference in New Issue
Block a user