asp2131 commited on
Commit
bb9f3e5
Β·
1 Parent(s): 1db1c5f

prompt upgrades

Browse files
Files changed (2) hide show
  1. app.py +1 -1
  2. spec/notebooklm-research-findings.md +107 -0
app.py CHANGED
@@ -100,7 +100,7 @@ DEFAULT_PROMPT = (
100
  "three views front side portrait"
101
  )
102
  DEFAULT_NEG = (
103
- "blurry, dark skin, umber brown, muddy colors, soft edges, "
104
  "no outlines, photorealistic, 3d render, CG, chibi, ugly, deformed, "
105
  "extra limbs, watermark, signature"
106
  )
 
100
  "three views front side portrait"
101
  )
102
  DEFAULT_NEG = (
103
+ "blurry, desaturated, washed out, muddy colors, soft edges, "
104
  "no outlines, photorealistic, 3d render, CG, chibi, ugly, deformed, "
105
  "extra limbs, watermark, signature"
106
  )
spec/notebooklm-research-findings.md ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # NotebookLM Research: Improving African American Character Design in AI Art
2
+
3
+ **Date:** 2026-03-04
4
+ **Notebook:** Research: African American Character Design in AI Art
5
+ **Notebook ID:** c39eab4d-4af3-4203-9d85-56633b54b3f5
6
+ **Sources:** 44 deep web research sources + 3 manual sources (ControlNet model page, Ghibli LoRA page, CivitAI guide)
7
+
8
+ ---
9
+
10
+ ## Problem 1: Multiple Characters Being Generated
11
+
12
+ ### Root Cause
13
+ - The prompt contains `"three views front side portrait"` β€” FLUX interprets this literally and generates 3 separate characters instead of 3 views of one character
14
+ - FLUX is trained on natural language captions, not tag clouds. It reads `"three views"` as "draw three people"
15
+
16
+ ### Fixes
17
+ - **Use singular language:** Replace vague terms with explicit singularity β€” `"a solo character"`, `"a single girl standing alone"`
18
+ - **Word order matters:** Place character count and main subject at the **very beginning** of the prompt. FLUX weights the first tokens most heavily ("Prompt Pyramid" priority)
19
+ - **Remove multi-view language** for single character output. Only use `"character design sheet, multiple views"` when intentionally generating a sheet
20
+ - **Avoid descriptive overload:** Too much environmental detail can cause the model to add more subjects to "balance" the scene
21
+ - **FLUX does not natively support negative prompts.** Including them can actually cause the model to generate the excluded element
22
+
23
+ ### Advanced: Regional Prompting (Future Enhancement)
24
+ - **Region-Aware Attention Manipulation** (from InstantX research) allows defining exactly where a character should appear using masks
25
+ - Use a Global Description (whole scene) + Regional Prompt (specific character in masked area) + Background Prompt (e.g., "empty white background") for non-masked regions
26
+ - Tools: `Regional-Prompting-FLUX` (diffusers), `ComfyUI-FluxRegionAttention`
27
+ - **Two-Pass Method:** Generate background first, then inpaint character into a masked region β€” most reliable "brute force" approach
28
+
29
+ ---
30
+
31
+ ## Problem 2: African American Hair Rendering
32
+
33
+ ### General FLUX Prompting Strategy
34
+ - **Use natural language prose**, not comma-separated tags. Write as if describing the scene to a human artist
35
+ - Instead of `"locs, anime style"` use `"A character with thick, well-defined locs rendered in a bold anime style"`
36
+ - **Avoid negative prompts** for hair quality. Instead, describe the positive attribute: `"clean, sharp edges"`, `"smooth texture"`
37
+
38
+ ### Hairstyle-Specific Descriptive Language
39
+ Use descriptive phrases that emphasize **volume, structure, and texture**:
40
+
41
+ | Hairstyle | Descriptors |
42
+ |-----------|-------------|
43
+ | **Space Buns** | "two large, perfectly spherical space buns", "symmetrical rounded buns", "neatly wrapped buns on either side of the head" |
44
+ | **Afro Puffs** | "two voluminous, cloud-like afro puffs", "bold rounded puffs with high texture", "large, fluffy puffs secured with invisible bands" |
45
+ | **Braids** | "intricately woven box braids", "sharp, clean cornrows with visible parts", "long, flowing braids with a slight sheen" |
46
+ | **Locs** | "thick, heavy, well-defined locs", "neatly maintained dreadlocks with visible twists", "structured locs gathered into a high ponytail" |
47
+
48
+ ### Achieving The Boondocks Rendering Style
49
+ The Boondocks (LeSean Thomas, Aaron McGruder) is known for bold, high-contrast rendering of Black hair with defined shapes:
50
+
51
+ - **Define the shape:** Use `"bold silhouettes"`, `"clean outlines"`, `"exaggerated hair volume"`
52
+ - **Style references:** `"2D anime illustration"`, `"cel-shaded rendering"`, `"high-contrast animation style"`
53
+ - **Geometric descriptors for sharp edges:** `"The hair has sharp, clean edges and a strong, defined outline against the background"`
54
+
55
+ ### Recommended Prompt Structure
56
+ Use **Subject + Action + Style + Context** framework:
57
+
58
+ **Template:**
59
+ > "[Subject with Specific Hairstyle], [Action/Pose], in a [Specific Anime Style], [Lighting and Context Details]."
60
+
61
+ **Example β€” Bold Afro Puffs:**
62
+ > "A young African American woman with two large, perfectly rounded afro puffs, standing heroically, rendered in a bold 2D anime style with thick clean outlines and cel-shaded colors similar to urban animation, set against a vibrant city sunset with high-contrast shadows."
63
+
64
+ **Example β€” Defined Locs:**
65
+ > "A character with long, thick, well-defined locs tied back, looking intensely at the viewer, classic 2D animation style with sharp line art, soft ambient lighting in a modern server room, high detail on the hair texture."
66
+
67
+ ---
68
+
69
+ ## Problem 3: Optimal ControlNet Settings
70
+
71
+ ### Single Portrait vs. Multi-View Character Sheet
72
+
73
+ | Setting | Single Character Portrait | Multi-View Character Sheet |
74
+ |---------|--------------------------|---------------------------|
75
+ | **Conditioning Scale** | 0.5 – 0.6 | 0.7 – 0.8 |
76
+ | **Guidance Start** | 0.0 | 0.2 |
77
+ | **Guidance End** | 0.8 | 0.8 – 1.0 |
78
+ | **Control Strength** | 0.3 – 0.5 (avoid "burning" flat skin/hair) | 0.6 – 0.8 (maintain spatial arrangement) |
79
+
80
+ ### Canny Thresholds
81
+ - **Standard recommendation:** Low **50**, High **200** β€” captures essential structural outlines without noise
82
+ - For pencil sketches with hatching/shading: raise Low to **100-120** to filter noise
83
+
84
+ ### Resolution and Aspect Ratio
85
+
86
+ | Use Case | Recommended |
87
+ |----------|-------------|
88
+ | **Single Portrait** | 9:16 (768x1344) or 3:4 (768x1024) β€” more vertical space for hairstyle |
89
+ | **Character Sheet** | 1:1 (768x768) or 16:9 (1024x768) |
90
+ | **Optimal FLUX resolution** | 1024x1024 or higher (up to 2.0 megapixels) |
91
+ | **Canny ControlNet stability** | 768x768 (XLabs-AI recommendation) |
92
+
93
+ ---
94
+
95
+ ## Recommended App Changes
96
+
97
+ ### Immediate (Prompt & Settings)
98
+ 1. **Rewrite default prompt** in natural language prose with singular character language
99
+ 2. **Remove negative prompt default** β€” FLUX doesn't use it effectively; can cause unwanted artifacts
100
+ 3. **Switch to portrait aspect ratio** (768x1024) for single character mode
101
+ 4. **Lower ControlNet conditioning scale** to 0.5 for portraits
102
+
103
+ ### Future Enhancements
104
+ 5. **Add mode toggle:** Single Character vs. Character Sheet β€” with different default settings for each
105
+ 6. **Explore Regional Prompting** for precise character placement
106
+ 7. **Two-Pass generation:** Background first, then inpaint character
107
+ 8. **Portrait crop option:** Auto-crop to head/shoulders for hair-focused output