cof-cli 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,98 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yannsouetre.github.io/cof/schemas/1.0/body.schema.json",
4
+ "title": "elements/appearance/<v>/body.json — body parameters (measurements, phenotypes, description)",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "height_cm": {
9
+ "type": [
10
+ "number",
11
+ "null"
12
+ ],
13
+ "minimum": 20,
14
+ "maximum": 400
15
+ },
16
+ "weight_kg": {
17
+ "type": [
18
+ "number",
19
+ "null"
20
+ ],
21
+ "minimum": 1
22
+ },
23
+ "build": {
24
+ "enum": [
25
+ "slim",
26
+ "athletic",
27
+ "average",
28
+ "stocky",
29
+ "heavy",
30
+ "other",
31
+ null
32
+ ]
33
+ },
34
+ "measurements_iso7250": {
35
+ "type": "object",
36
+ "additionalProperties": {
37
+ "type": "number"
38
+ },
39
+ "description": "ISO 7250 keys (stature, chest_circumference, waist_circumference, hip_circumference, shoulder_breadth…) in cm"
40
+ },
41
+ "phenotypes_anny": {
42
+ "type": "object",
43
+ "additionalProperties": {
44
+ "type": "number",
45
+ "minimum": 0,
46
+ "maximum": 1
47
+ },
48
+ "description": "Anny phenotypes [0,1]"
49
+ },
50
+ "smplx_betas": {
51
+ "type": "array",
52
+ "items": {
53
+ "type": "number"
54
+ },
55
+ "maxItems": 300
56
+ },
57
+ "skin_tone_hex": {
58
+ "type": "string",
59
+ "pattern": "^#[0-9a-fA-F]{6}$"
60
+ },
61
+ "skin_tone_scale": {
62
+ "type": "object",
63
+ "properties": {
64
+ "scale": {
65
+ "enum": [
66
+ "monk-10",
67
+ "fitzpatrick-6"
68
+ ]
69
+ },
70
+ "value": {
71
+ "type": "integer",
72
+ "minimum": 1,
73
+ "maximum": 10
74
+ }
75
+ }
76
+ },
77
+ "descriptive": {
78
+ "type": "string"
79
+ },
80
+ "estimated": {
81
+ "type": "boolean",
82
+ "description": "estimated morphology under clothing — forbidden if age < 18, never for a real person without consent.scope ∋ likeness-3d"
83
+ },
84
+ "confidence": {
85
+ "type": "number",
86
+ "minimum": 0,
87
+ "maximum": 1
88
+ },
89
+ "renderings": {
90
+ "type": "object",
91
+ "properties": {
92
+ "prompt": {
93
+ "type": "string"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yannsouetre.github.io/cof/schemas/1.0/card.schema.json",
4
+ "title": "elements/personality/<v>/card.json — Character Card V3 (checked subset; the rest follows the CCv3 spec)",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "spec": {
9
+ "enum": [
10
+ "chara_card_v3",
11
+ "chara_card_v2"
12
+ ]
13
+ },
14
+ "spec_version": {
15
+ "type": "string"
16
+ },
17
+ "data": {
18
+ "type": "object",
19
+ "required": [
20
+ "name"
21
+ ],
22
+ "properties": {
23
+ "name": {
24
+ "type": "string"
25
+ },
26
+ "description": {
27
+ "type": "string"
28
+ },
29
+ "personality": {
30
+ "type": "string"
31
+ },
32
+ "scenario": {
33
+ "type": "string"
34
+ },
35
+ "first_mes": {
36
+ "type": "string"
37
+ },
38
+ "mes_example": {
39
+ "type": "string"
40
+ },
41
+ "system_prompt": {
42
+ "type": "string"
43
+ },
44
+ "post_history_instructions": {
45
+ "type": "string"
46
+ },
47
+ "creator_notes": {
48
+ "type": "string"
49
+ },
50
+ "creator": {
51
+ "type": "string"
52
+ },
53
+ "character_version": {
54
+ "type": "string"
55
+ },
56
+ "alternate_greetings": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string"
60
+ }
61
+ },
62
+ "tags": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "string"
66
+ }
67
+ },
68
+ "extensions": {
69
+ "type": "object",
70
+ "properties": {
71
+ "cof": {
72
+ "type": "object",
73
+ "properties": {
74
+ "behavior": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ },
80
+ "goals": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "fears": {
87
+ "type": "array",
88
+ "items": {
89
+ "type": "string"
90
+ }
91
+ },
92
+ "language": {
93
+ "type": "string",
94
+ "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "required": [
104
+ "spec",
105
+ "data"
106
+ ]
107
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yannsouetre.github.io/cof/schemas/1.0/consent.schema.json",
4
+ "title": "rights/consent.json (or identities.<id>.consent) — consent of a real person",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "subject_is_real_person": {
9
+ "const": true
10
+ },
11
+ "subject_ref": {
12
+ "type": "string",
13
+ "description": "non-identifying internal reference (never an ID number)"
14
+ },
15
+ "scope": {
16
+ "type": "array",
17
+ "minItems": 1,
18
+ "items": {
19
+ "enum": [
20
+ "voice-synthesis",
21
+ "likeness-image",
22
+ "likeness-3d",
23
+ "conversational-persona",
24
+ "motion-capture",
25
+ "training",
26
+ "intimate",
27
+ "nudity"
28
+ ]
29
+ }
30
+ },
31
+ "excluded": {
32
+ "type": "array",
33
+ "items": {
34
+ "type": "string"
35
+ }
36
+ },
37
+ "granted": {
38
+ "type": "string",
39
+ "format": "date"
40
+ },
41
+ "expires": {
42
+ "type": [
43
+ "string",
44
+ "null"
45
+ ],
46
+ "format": "date"
47
+ },
48
+ "jurisdictions": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "string",
52
+ "pattern": "^[A-Z]{2}$"
53
+ }
54
+ },
55
+ "revocation_uri": {
56
+ "type": "string",
57
+ "format": "uri"
58
+ },
59
+ "age_of_subject_at_consent": {
60
+ "type": "number",
61
+ "minimum": 18,
62
+ "description": "consent from a minor is not admissible in this format"
63
+ },
64
+ "proof": {
65
+ "type": "array",
66
+ "items": {
67
+ "type": "object",
68
+ "required": [
69
+ "type"
70
+ ],
71
+ "properties": {
72
+ "type": {
73
+ "enum": [
74
+ "signed-document",
75
+ "verbal-statement-audio",
76
+ "video-statement",
77
+ "platform-attestation",
78
+ "other"
79
+ ]
80
+ },
81
+ "path": {
82
+ "type": "string",
83
+ "pattern": "^(?!/)(?!.*\\.\\.)[A-Za-z0-9._/-]+$"
84
+ },
85
+ "sha256": {
86
+ "type": "string",
87
+ "pattern": "^[a-f0-9]{64}$"
88
+ },
89
+ "uri": {
90
+ "type": "string",
91
+ "format": "uri"
92
+ },
93
+ "transcript": {
94
+ "type": "string",
95
+ "pattern": "^(?!/)(?!.*\\.\\.)[A-Za-z0-9._/-]+$"
96
+ }
97
+ },
98
+ "allOf": [
99
+ {
100
+ "if": {
101
+ "required": [
102
+ "path"
103
+ ]
104
+ },
105
+ "then": {
106
+ "required": [
107
+ "sha256"
108
+ ]
109
+ }
110
+ }
111
+ ]
112
+ },
113
+ "minItems": 1
114
+ },
115
+ "subject": {
116
+ "type": "object",
117
+ "properties": {
118
+ "name": {
119
+ "type": "string"
120
+ },
121
+ "contact_hash": {
122
+ "type": "string"
123
+ }
124
+ },
125
+ "description": "never an ID number or contact details in clear text"
126
+ }
127
+ },
128
+ "required": [
129
+ "subject_is_real_person",
130
+ "scope",
131
+ "granted",
132
+ "proof"
133
+ ]
134
+ }
@@ -0,0 +1,41 @@
1
+ { "vocabulary": "garments", "version": "1.0", "license": "CC0-1.0",
2
+ "note": "Types de vêtements avec régions couvertes et couche. Deux vêtements d'un même preset sont en conflit s'ils partagent une région ET une couche. 'full-outfit' est exclusif.",
3
+ "layers": ["under", "base", "outer"],
4
+ "regions": ["head", "face", "neck", "torso", "arms", "hands", "waist", "hips", "legs", "feet"],
5
+ "types": {
6
+ "full-outfit": { "fr": "tenue complète (tout)", "regions": ["*"], "layer": "*", "exclusive": true },
7
+ "top": { "fr": "haut (chemise, t-shirt, pull, blouse)", "regions": ["torso", "arms"], "layer": "base" },
8
+ "bottom": { "fr": "bas (pantalon, jupe, short)", "regions": ["hips", "legs"], "layer": "base" },
9
+ "dress": { "fr": "robe", "regions": ["torso", "hips", "legs"], "layer": "base" },
10
+ "jumpsuit": { "fr": "combinaison", "regions": ["torso", "arms", "hips", "legs"], "layer": "base" },
11
+ "outerwear": { "fr": "veste, manteau, gilet", "regions": ["torso", "arms"], "layer": "outer" },
12
+ "underwear-top": { "fr": "sous-vêtement haut", "regions": ["torso"], "layer": "under" },
13
+ "underwear-bottom": { "fr": "sous-vêtement bas", "regions": ["hips"], "layer": "under" },
14
+ "socks": { "fr": "chaussettes, collants", "regions": ["feet", "legs"], "layer": "under" },
15
+ "shoes": { "fr": "chaussures, bottes", "regions": ["feet"], "layer": "outer" },
16
+ "headwear": { "fr": "chapeau, casque, capuche", "regions": ["head"], "layer": "outer" },
17
+ "gloves": { "fr": "gants", "regions": ["hands"], "layer": "outer" },
18
+ "scarf": { "fr": "écharpe, foulard", "regions": ["neck"], "layer": "outer" },
19
+ "belt": { "fr": "ceinture", "regions": ["waist"], "layer": "outer" },
20
+ "armor": { "fr": "armure, protection", "regions": ["torso", "arms", "legs"], "layer": "outer" },
21
+ "cape": { "fr": "cape", "regions": ["torso"], "layer": "outer", "stackable": true },
22
+ "other": { "fr": "autre", "regions": [], "layer": "outer", "stackable": true }
23
+ },
24
+ "accessories": {
25
+ "note": "Deux accessoires PORTÉS (accessory_use = worn) appliqués par un même preset (slots) sont en conflit s'ils partagent une région, sauf si stackable. Les accessoires proposés (alternatives) et les natures not-worn / companion / other n'ont pas de région.",
26
+ "uses": {
27
+ "worn": { "fr": "porté ou portable", "en": "worn or carried", "typed": true },
28
+ "not-worn": { "fr": "non porté", "en": "not worn" },
29
+ "companion": { "fr": "compagnon", "en": "companion" },
30
+ "other": { "fr": "autre", "en": "other" }
31
+ },
32
+ "types": {
33
+ "glasses": { "fr": "lunettes", "region": "face" }, "mask": { "fr": "masque", "region": "face" },
34
+ "earrings": { "fr": "boucles d'oreilles", "region": "ears" }, "necklace": { "fr": "collier", "region": "neck", "stackable": true },
35
+ "bracelet": { "fr": "bracelet, montre", "region": "wrists", "stackable": true }, "ring": { "fr": "bague", "region": "fingers", "stackable": true },
36
+ "bag": { "fr": "sac, cartable", "region": "back-or-hand", "stackable": true }, "weapon": { "fr": "arme", "region": "held" },
37
+ "tool": { "fr": "outil, instrument", "region": "held" }, "headpiece": { "fr": "diadème, bandeau, couronne", "region": "head" },
38
+ "other": { "fr": "autre", "region": "none", "stackable": true }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yannsouetre.github.io/cof/schemas/1.0/hair.schema.json",
4
+ "title": "elements/appearance/<v>/hair.json — COF-HAIR-1 code",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "model": {
9
+ "const": "COF-HAIR-1"
10
+ },
11
+ "length": {
12
+ "type": [
13
+ "integer",
14
+ "null"
15
+ ],
16
+ "minimum": 0,
17
+ "maximum": 9,
18
+ "description": "0 bald · 1 buzzed · 2 short · 3 ears · 4 chin · 5 shoulders · 6 shoulder blades · 7 mid-back · 8 waist · 9 beyond"
19
+ },
20
+ "curl": {
21
+ "type": [
22
+ "integer",
23
+ "null"
24
+ ],
25
+ "minimum": 0,
26
+ "maximum": 9,
27
+ "description": "0 straight · 3 wavy · 6 curly · 9 coily (Andre 1a–4c scale, projected)"
28
+ },
29
+ "density": {
30
+ "type": [
31
+ "integer",
32
+ "null"
33
+ ],
34
+ "minimum": 0,
35
+ "maximum": 9
36
+ },
37
+ "thickness": {
38
+ "enum": [
39
+ "fine",
40
+ "medium",
41
+ "coarse",
42
+ null
43
+ ]
44
+ },
45
+ "color_base_hex": {
46
+ "type": [
47
+ "string",
48
+ "null"
49
+ ],
50
+ "pattern": "^#[0-9a-fA-F]{6}$"
51
+ },
52
+ "color_secondary_hex": {
53
+ "type": [
54
+ "string",
55
+ "null"
56
+ ],
57
+ "pattern": "^#[0-9a-fA-F]{6}$"
58
+ },
59
+ "grey_pct": {
60
+ "type": [
61
+ "integer",
62
+ "null"
63
+ ],
64
+ "minimum": 0,
65
+ "maximum": 100
66
+ },
67
+ "style": {
68
+ "type": [
69
+ "string",
70
+ "null"
71
+ ],
72
+ "description": "loose, bob, braids, bun, ponytail, undercut, mohawk, locs, afro…"
73
+ },
74
+ "parting": {
75
+ "enum": [
76
+ "left",
77
+ "right",
78
+ "middle",
79
+ "none",
80
+ null
81
+ ]
82
+ },
83
+ "fringe": {
84
+ "enum": [
85
+ "none",
86
+ "straight",
87
+ "side",
88
+ "curtain",
89
+ null
90
+ ]
91
+ },
92
+ "renderings": {
93
+ "type": "object",
94
+ "properties": {
95
+ "prompt": {
96
+ "type": "string"
97
+ }
98
+ }
99
+ }
100
+ },
101
+ "required": [
102
+ "model"
103
+ ]
104
+ }