p-image-ideogram
Skill20 starsChanged 44 days agoApache-2.0View on GitHub
Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite.
- Reads credentials
- Sends data out
In this repository32 other files it gives its agents.
- AGENTS.mdAGENTS.md
- gemini-3.1-flash-ttsSkill
- music-2.5Skill
- stable-audio-2.5Skill
- whisperxSkill
- audio-promptingSkill
- generation-diversitySkill
- image-promptingSkill
- pruna-apiSkill
- video-editingSkill
- video-promptingSkill
- p-image-editSkill
- p-imageSkill
- p-image-try-onSkill
- p-image-upscaleSkill
- prunaSkill
- p-video-2-pro-referenceSkill
- p-video-2-proSkill
- p-video-2Skill
- p-video-animateSkill
- p-video-avatarSkill
- p-video-editSkill
- p-video-replaceSkill
- p-videoSkill
- avatar-multi-sceneSkill
- avatar-single-sceneSkill
- illustrated-story-reelSkill
- image-to-videoSkill
- interactive-explainerSkill
- music-videoSkill
- narrated-multi-sceneSkill
- visual-transition-reelSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 2 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Follow each skill's Before generating / craft sections — do not restate guide content here.
- Very specific: line 33
Premium path: when the user requests maximum quality or the composition is highly complex (many text elements, intricate multi-panel …
- Very specific: line 37
When the job comes from a vertical-* workflow (or another multi-step production with spec copy or covers), pick thinking, image_size, and …
- Very specific: line 53
Every input.prompt must be fresh and specific, and must keep the user's request.
- Very specific: line 63
Fidelity check (before pay): if you remove the user’s named subject/product/setting from the prompt, the job is wrong — rewrite.
- Distinctive: line 79
Use a different skill instead:
- Very specific: line 124
Follow generation-diversity still-image prompt flow every time:
- Very specific: line 139
Photo approved → video: use p-video (image-to-video) or p-video-animate when motion is next.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Prerequisites
Install and load these skills before generating (skip if already in context via @pruna):
| Skill | Description | Install |
generation-diversity | Use when writing any generative prompt — ritual seed, explicit structure, scenario axes, and quality gates before paid API calls. | npx skills add PrunaAI/pruna-skills@generation-diversity -y |
image-prompting | Use when crafting still-image prompts for any generative model — composition, identity sheets, edits, try-on, and photoreal personas. | npx skills add PrunaAI/pruna-skills@image-prompting -y |
pruna-api | Use before any Pruna or Replicate HTTP call — credentials, upload/poll/download, parallel batches, and agent safety. | npx skills add PrunaAI/pruna-skills@pruna-api -y |
Or install the full suite once: npx skills add PrunaAI/pruna-skills@pruna -y
Follow each skill's Before generating / craft sections — do not restate guide content here.
Agent habit
Route by complexity: Use `p-image-ideogram` when photo generation needs more control — readable text in the image, structured JSON, hex/bbox placement, or high-detail photoreal shots. Use `p-image` for simple, quick photo generation. Use `p-image-edit` to change an existing photo; use `p-video-2-pro` / `p-video-2` (`p-video-animate` from a still) for motion.
In the first reply, name `p-image-ideogram` in backticks, confirm PRUNA_API_KEY is set (or stop with signup links from pruna-api), then ask for prompt / aspect ratio / any copy-on-surface (open intake → generation-diversity clarification intake). When drafting the prompt, follow Prompt craft below — do not paste skill examples.
Agent defaults (override API defaults): send thinking: "high", prompt_upsampling: true, and image_size: "1K" unless a profile in domain-configurations.md says otherwise. Use image_size: "2K" for dense in-image text, multi-panel layouts, and large output. Set prompt_upsampling: false when text is locked (JSON prompts, exact strings) or the user wants verbatim prompts only.
Premium path: when the user requests maximum quality or the composition is highly complex (many text elements, intricate multi-panel layouts, detailed structured scenes), send thinking: "very high" + image_size: "2K". Costs ~2× high ($0.033/1K, $0.066/2K) — confirm with the user before using unless they explicitly asked for top quality.
Speed path (same model): when the scene is simpler but you still want ideogram (or need a faster pass on this model), send thinking: "low", prompt_upsampling: false, and a nuanced, explicit prompt you fully draft — upsampling stays off because the prompt already carries the detail. Faster than the default high + upsampling path. For the simplest quick photo drafts, route to p-image instead.
When the job comes from a vertical-* workflow (or another multi-step production with spec copy or covers), pick thinking, image_size, and NL vs JSON from domain-configurations.md for that vertical and use-case # — do not use one global knob set for every industry.
vs p-image
`p-image-ideogram` | `p-image` | |
| When | More control — text in the image, JSON layout, hex/bbox, detailed photoreal photos | Simple, quick photo generation from a short prompt |
| Quality | Strong photorealism and typography; five thinking levels (very low to very high); 1K / 2K | Good quality, extremely fast; no prompt upsampling |
| Prompt upsampling | true by default (high path); false on speed path or locked copy / JSON | None — concrete language is the whole craft |
| Knob default | thinking: high + prompt_upsampling: true | Single fast pass — no thinking/upsampling knobs |
| Structured layout | Ideogram 4.0 JSON caption in prompt (hex, bbox, "text" elements) — see ideogram-json-prompting.md | Avoid dense readable type |
Official parameters: P-Image-Ideogram
Prompt craft (dynamic + faithful)
Every input.prompt must be fresh and specific, and must keep the user's request. Diversity never overrides what the user asked for.
| Do | Don't |
Run the generation-diversity random seed ritual; state it; rotate ≥2 free axes (camera, lighting, setting texture, render category) | Copy curl examples from this skill or reuse a prior session's prompt verbatim |
| Lock user-required facts first (subject, product, brand cues, must-keep props, exact strings for text in the image) | Swap the subject for a “cooler” scene that ignores the request |
For structured layouts, use the Ideogram JSON caption schema in input.prompt when placement, palette, or repeatability matter; otherwise name panels, literal copy, and hex in natural language | Chain p-image-edit to fix multi-panel copy — regenerate the photo instead |
Expand with concrete nouns, frozen action, materials, placement (image-prompting golden rules) | Vague mood-only strings (cool product vibe, neon) |
Show drafted prompt + thinking + image_size + aspect_ratio + prompt_upsampling before POST when the user has not locked wording | Silent regen with a different subject than approved |
Fidelity check (before pay): if you remove the user’s named subject/product/setting from the prompt, the job is wrong — rewrite. Free axes only fill what the user did not specify.
Typography: list every string and surface; use image_size: "2K" and prompt_upsampling: false when legibility is critical (default thinking: "high"). Domain-specific profiles and vertical rows: domain-configurations.md. JSON captions (exact placement, brand hex, repeatable layout): ideogram-json-prompting.md.
Thinking & resolution
thinking | Best for |
very low | Basic photos, fastest ideogram pass |
low | Speed path — pair with prompt_upsampling: false and a nuanced explicit prompt; faster than the default when the scene is simpler but ideogram is still the right model |
medium | Middle ground when high is heavier than needed but the prompt is not fully self-contained |
high | Default agent choice — text in the image, multi-panel layouts, editorial portraits; pair with image_size: "2K" when legibility or large output matters |
very high | Maximum quality — complex compositions with multiple text elements, intricate layouts, or when the absolute best output justifies the ~2× cost over high; pair with image_size: "2K" for best results |
When NOT to use
Use a different skill instead:
| Skill | Description | Install |
p-image | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | npx skills add PrunaAI/pruna-skills@p-image -y |
p-image-edit | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | npx skills add PrunaAI/pruna-skills@p-image-edit -y |
p-image-try-on | Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. | npx skills add PrunaAI/pruna-skills@p-image-try-on -y |
HTTP (curl)
Create (async — recommended)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-ideogram' \
-d '{
"input": {
"prompt": "South Asian woman founder mid-30s, documentary portrait at cast-iron loft window, natural skin pores, mouth visible, hands away from mouth, golden hour side light, photoreal editorial",
"thinking": "high",
"image_size": "1K",
"prompt_upsampling": true,
"aspect_ratio": "9:16"
}
}'Poll and download: follow pruna-api.
Complete the random seed ritual from generation-diversity before writing prompts — do not pass the ritual string as API seed. Optional seed only when the user requests reproducibility.
Create (sync — quick test only)
curl -X POST 'https://api.pruna.ai/v1/predictions' \
-H 'Content-Type: application/json' \
-H "apikey: ${PRUNA_API_KEY}" \
-H 'Model: p-image-ideogram' \
-H 'Try-Sync: true' \
-d '{"input":{"prompt":"Hong Kong neon alley at night, fearless grandmother in floral apron juggling dumplings, awning reads HAPPY HOUR 5-7, kiosk sign PRUNA AI, fish-eye lens, crisp legible typography","thinking":"high","image_size":"2K","prompt_upsampling":true,"aspect_ratio":"9:16"}}'Generation flow
Follow generation-diversity still-image prompt flow every time:
- Lock the request — subject, product, format, any text on the image.
- Ritual seed — fresh string; derive free axes (camera, lighting,
render_category_tag,aspect_ratiowhen unset). - Pick knobs — domain-configurations.md profile for the vertical/use case, else default
thinking: high,image_size: 1K,prompt_upsampling: true; or speed path —thinking: low,prompt_upsampling: false, nuanced explicit prompt; or premium path —thinking: "very high",image_size: "2K"for maximum quality on complex compositions; raiseimage_sizeto2Kfor dense in-image text or multi-panel layouts; setprompt_upsampling: falsefor locked text or JSON. - Draft explicit prompt — Prompt craft +
image-promptinggolden rules; fidelity check before pay. - Confirm — show
prompt+ knobs unless wording is locked. - POST — async curl below; poll via
pruna-api; runp-imagequality checklist inimage-promptingbefore upscale/video.
Aspect ratio: pass aspect_ratio in input; if output dimensions do not match (e.g. asked 16:9, got portrait), retry once with explicit horizontal wide / vertical wording in the prompt.
Mood board / batch: new ritual per independent photo; different aspect_ratio per panel when format not locked.
Photo approved → edit: hand off to p-image-edit on the output URL for photo edits — do not run photo generation again for the same subject; do not use edit to fix dense multi-panel in-image text (regenerate instead).
Photo approved → video: use p-video (image-to-video) or p-video-animate when motion is next; upscale first with p-image-upscale if resolution is tight.
Required input
prompt(string)
Common optional fields
thinking:very low,low,medium,high,very high— defaulthigh;low+prompt_upsampling: false+ explicit prompt for the speed path;very highfor maximum quality on complex compositionsimage_size:1K,2K(ignored whenaspect_ratioiscustom)prompt_upsampling: boolean — defaulttruewiththinking: high;falseon speed path, locked copy, JSON prompts, or verbatim wordingaspect_ratio:1:1,16:9,9:16,4:3,3:4,3:2,2:3,custom(withwidth/heightup to 2560, multiples of 16)seed,output_format(jpg,png,webp),output_quality(0–100; ignored forpng)
Typical next steps
Common follow-ons after this skill:
| Skill | Description | Install |
p-image-edit | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | npx skills add PrunaAI/pruna-skills@p-image-edit -y |
p-image-try-on | Use when someone wants virtual try-on — dress a person in clothes from reference photos for fashion or ecommerce. | npx skills add PrunaAI/pruna-skills@p-image-try-on -y |
p-image-upscale | Use when someone wants to upscale or sharpen an existing image for print, large crops, or higher-quality delivery. | npx skills add PrunaAI/pruna-skills@p-image-upscale -y |
p-video-2-pro | Use when someone wants a cinematic clip from text or start/end frames — product ads, documentary shots, or dialogue with generated audio. Not for 1080p, imported audio tracks, or talking-head-only hosts. | npx skills add PrunaAI/pruna-skills@p-video-2-pro -y |
p-video-2 | Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts. | npx skills add PrunaAI/pruna-skills@p-video-2 -y |
p-video | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p. | npx skills add PrunaAI/pruna-skills@p-video -y |
p-video-avatar | Use when someone wants a person on camera speaking a script — lip-synced host, spokesperson, or narrated avatar from a portrait photo. | npx skills add PrunaAI/pruna-skills@p-video-avatar -y |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

