agentleFS
PrunaAIPrunaAI/pruna-skills/skills/image/p-image-ideogram/SKILL.md

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

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
  1. Distinctive:

    Follow each skill's Before generating / craft sections — do not restate guide content here.

    line 23
  2. Very specific:

    Premium path: when the user requests maximum quality or the composition is highly complex (many text elements, intricate multi-panel …

    line 33
  3. Very specific:

    When the job comes from a vertical-* workflow (or another multi-step production with spec copy or covers), pick thinking, image_size, and …

    line 37
  4. Very specific:

    Every input.prompt must be fresh and specific, and must keep the user's request.

    line 53
  5. Very specific:

    Fidelity check (before pay): if you remove the user’s named subject/product/setting from the prompt, the job is wrong — rewrite.

    line 63
  6. Distinctive:

    Use a different skill instead:

    line 79
  7. Very specific:

    Follow generation-diversity still-image prompt flow every time:

    line 124
  8. Very specific:

    Photo approved → video: use p-video (image-to-video) or p-video-animate when motion is next.

    line 139

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Prerequisites

Install and load these skills before generating (skip if already in context via @pruna):

SkillDescriptionInstall
generation-diversityUse 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-promptingUse 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-apiUse 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`
WhenMore control — text in the image, JSON layout, hex/bbox, detailed photoreal photosSimple, quick photo generation from a short prompt
QualityStrong photorealism and typography; five thinking levels (very low to very high); 1K / 2KGood quality, extremely fast; no prompt upsampling
Prompt upsamplingtrue by default (high path); false on speed path or locked copy / JSONNone — concrete language is the whole craft
Knob defaultthinking: high + prompt_upsampling: trueSingle fast pass — no thinking/upsampling knobs
Structured layoutIdeogram 4.0 JSON caption in prompt (hex, bbox, "text" elements) — see ideogram-json-prompting.mdAvoid 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.

DoDon'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 languageChain 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 wordingSilent 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

thinkingBest for
very lowBasic photos, fastest ideogram pass
lowSpeed 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
mediumMiddle ground when high is heavier than needed but the prompt is not fully self-contained
highDefault agent choice — text in the image, multi-panel layouts, editorial portraits; pair with image_size: "2K" when legibility or large output matters
very highMaximum 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:

SkillDescriptionInstall
p-imageUse 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-editUse 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-onUse 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:

  1. Lock the request — subject, product, format, any text on the image.
  2. Ritual seed — fresh string; derive free axes (camera, lighting, render_category_tag, aspect_ratio when unset).
  3. 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; raise image_size to 2K for dense in-image text or multi-panel layouts; set prompt_upsampling: false for locked text or JSON.
  4. Draft explicit prompt — Prompt craft + image-prompting golden rules; fidelity check before pay.
  5. Confirm — show prompt + knobs unless wording is locked.
  6. POST — async curl below; poll via pruna-api; run p-image quality checklist in image-prompting before 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 — default high; low + prompt_upsampling: false + explicit prompt for the speed path; very high for maximum quality on complex compositions
  • image_size: 1K, 2K (ignored when aspect_ratio is custom)
  • prompt_upsampling: boolean — default true with thinking: high; false on speed path, locked copy, JSON prompts, or verbatim wording
  • aspect_ratio: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, custom (with width / height up to 2560, multiples of 16)
  • seed, output_format (jpg, png, webp), output_quality (0–100; ignored for png)

Typical next steps

Common follow-ons after this skill:

SkillDescriptionInstall
p-image-editUse 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-onUse 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-upscaleUse 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-proUse 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-2Use 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-videoUse 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-avatarUse 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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.