InkedGirls

Studio manual

Not signed in · Sign in

What is this?

InkedStudio turns the things you type into pictures and videos using artificial intelligence. You describe a character once, the studio remembers them, and then every picture or video you make uses that character as the subject. You can chat with the character too — they have a personality, remember what you've talked about, and can send you selfies when you ask.

The catch: it's not a magic wand. The better you describe what you want, the better picture or video you get. This manual shows you how every button works.

Sign in & sign out

1
Go to the sign-in page. The address depends on which demo you're using: https://demo2.inkedworld.ai/login.php (abaddon demo), https://devinked.detodoenlaweb.com/login.php (hellboy dev), or http://inkedstudio2.local/login.php (local).
2
Type your username (lowercase, no spaces) and password. Hit the big orange Sign in button.
3
You're in. You land on the studio — either onboarding (your first visit) or the studio itself with your saved models.

To leave: click sign out. Where you land depends on where you signed out from:

Your models and gallery are saved on the server; signing back in brings them back.

Lost your password? Ask your demo owner to reset it. There's no self-serve reset.

The studio — what's on the screen

Once signed in, the studio has three regions:

Hover the little ? icons next to buttons if you're not sure what they do — a small message pops up explaining the button. (See the About tooltips section below for the full tour.)

About the ? tooltips

Throughout the studio you'll see small ? icons next to buttons and labels. Hover (or tap) one to see a one-line description of what that control does. They're contextual, so the tooltip for + New Model explains what that button does; the tooltip for the credits chip explains what credits are; etc.

What you'll find tooltips on

Buttons that use a native hover tooltip instead

On the gallery thumbnail and lightbox, the small action buttons (Animate, Custom Animate, Delete) show their tip as the browser's native tooltip when you hover them. Same information, slightly different style — same one-line description of what they do.

Keyboard: Tab moves focus to the next tooltip, Space or Enter opens it, Esc closes it. The popover re-positions on window resize so it never runs off-screen.

Onboarding (your first visit)

First time you sign in, the studio greets you with a single text box. No multi-step questionnaire — just describe the character you want and the AI fills in the rest.

1
Describe your character. Write a sentence that includes whatever you care about — name, sex, body type, hair, eyes, ethnicity, skin, age, vibe, setting. The AI extracts as much as it can from one message.

Example: "A female model named Nova, athletic, long jet-black hair, emerald eyes, East Asian, at a sunlit beach."
2
Hit Send. The AI reads your message and either asks one follow-up question for something it couldn't guess, OR — if you gave it everything — shows you a polished plan card with a Generate it now button.
3
Generate it now. The studio fires the image model with the model's profile prepended to your scene description. Your first picture lands in the chat and in your new model's gallery.
Name conflicts: if the name you typed already exists in your studio (e.g. "Luna"), the AI shows you four name suggestions ("Luna 2", "Luna V2", etc.). Click one to bind to the existing model instead of creating a duplicate.

Active model — generate scenes

Once you've created at least one model, the studio shows a normal composer at the bottom of the chat. Whatever you type here becomes a scene for your active model — the most recently used character.

1
Type a scene. The placeholder reads "Describe a scene for {name}…". Be specific.

Example: "Luna at the beach at sunset, wind in her hair, golden hour lighting".
2
Hit Send (or Enter). The AI rewrites your prompt with Luna's profile baked in and shows you a plan card with the polished prompt + a single Generate button. This step doesn't cost credits — it's just a rewrite.
3
Click Generate. A pending bubble appears with "🖼️ Generating image… feel free to go chat with models and start another generation while this one finishes…" (or "🎬 Rendering video…" if it's a video). The result lands in the chat when ready and in the model's gallery.
Video mode is automatic. If your prompt mentions motion (video, movie, animation, cinematic video, short film, etc.), the planner picks the video model automatically and your scene renders as a video instead of an image. Same Generate button, same composer.
Refining the plan: the plan card has a Refine prompt button — type "make it night" or "add a red dress" and click Refine to rewrite the plan with that tweak.

Animate: ▶ Simple (1-click)

Already have a picture you love? Turn it into a video in one click.

1
Hover any picture in your gallery. A small footer appears with two buttons: ▶ Animate and ✨ Custom Animate.
2
Click ▶ Animate. The studio fires the image-to-video model immediately with a generic cinematic motion prompt ("subtle natural motion, cinematic camera movement").
3
Walk away. A pending bubble appears in the chat with "🎬 Rendering video… feel free to go chat with models and generate images while this renders…". The header 🎬 1 chip appears and pulses orange. You can keep using the studio — chat with your models, generate more pictures, navigate around. The video finishes on its own and the result lands in the gallery.
Costs ~85 credits and takes about 90 seconds. The chip stays visible the whole time so you always know something's rendering.

Animate: ✨ Custom (describe the motion)

Same flow as ▶ Simple, but you describe the exact motion you want. Best when you want a specific camera move or mood.

1
Hover the picture, click ✨ Custom Animate. The studio navigates to a new page with an "animate welcome" bubble: "Hey {your name} ✨. Ready to animate Asset #57 of Luna. What kind of motion do you want?…"

Three starter prompts are suggested (chosen to fit your model's gender — male characters get "he/his" pronouns, female characters get "she/her"). You can click one to use it as-is, or write your own.
2
Type the motion in the composer (placeholder: "Describe the motion you want — slow zoom, walking forward, camera orbits…"). Hit Send.
3
Plan card appears with your polished motion prompt + a Generate button. Click Generate.
4
Walk away. Same as Simple Animate — pending bubble, pulsing header chip, free to use the studio while it renders.
Good motion prompts include: what the subject does (walks, turns, smiles), where they look, how the camera moves (slow zoom in, orbits from behind, low angle), and the mood (cinematic, soft, dramatic). Three sentences is plenty.
If the animate can't find your image (it was deleted, or belongs to a different account), you'll see a yellow "⚠️ Couldn't load that asset" bubble instead. Pick a different image from your gallery below.

Render queue indicator (the 🎬 chip)

A small chip between the Chat button and your credit balance shows when something is rendering in the background:

It survives help.php navigation. Click ? Help, read this page, click Back to studio — the chip is still pulsing with the same count. (It's stored in sessionStorage so any other tab navigation within the same session preserves it.)
It survives a page refresh (Cmd-R). Within 10 minutes. After 10 minutes the entry is dropped silently — the upstream fetch was almost certainly aborted when you navigated away, so a stale indicator would be misleading.

"▶ Click to watch" overlay (inline videos)

When a video lands in the chat (either from a generation or a chat reply), it appears as an inline bubble. To make sure you can always see the video regardless of inline player quirks, every inline video has a centered ▶ Click to watch button on top of it.

Click the button → opens the video full-size in the lightbox with autoplay. The lightbox also has its own controls, and you can close it with , the dark backdrop, or Escape.

If the inline video looks broken (black box, won't play, codec error), click the centered "▶ Click to watch" button instead. The lightbox is more robust than the inline player.

"Your video is ready" pop-up

When you're in companion chat with a model and a video you started earlier finishes rendering, the studio shows you a pop-up so you don't miss it:

The pop-up only fires when you're in chat mode. In studio mode, the result card lands in front of you anyway, so a pop-up would be redundant.

Companion chat

Each model has a companion chat — you talk to them, and they reply in character. The chat remembers your last 10 turns (and uses full-text search across your whole history with them).

Entering chat

The studio swaps into chat mode. Two new things appear:

The composer placeholder switches to "Message {name}… say 'send me a pic' for a selfie, or 'make a video of you at X' for motion."

What the persona can do

The persona reads every message and decides what to do. Three intents — picked automatically based on whether a phone camera could capture the shot on its own:

Persona style

Per-sex persona style. The studio keeps male and female personas visually and tonally distinct. Female personas avoid 😘💋😏💕 (even if you ask). Both genders stick to the model's name in replies. You'll notice the difference after a few exchanges.

Going back to studio

Click ← Back to studio at the bottom of the side panel (or ← back to gallery in the chat header help text). Both do a full page reload to the studio — your model is preserved and the chat history is saved on the server.

Glossary

Model
A character you've created in the studio. Each model has a profile (sex, body, hair, eyes, ethnicity, skin, age) and their own gallery of generated images and videos.
Active model
The model your next scene prompt will be applied to. The composer placeholder reads "Describe a scene for {name}…". Switch active model by clicking a different card in the gallery strip below the chat.
Scene
A description of what your model is doing in a picture or video. Used as the input to the planner.
Plan card
The assistant bubble that appears after you submit a scene. Shows the polished prompt + the model settings that will be used (e.g. "Seedance 2.0 Fast · 16:9 · 720p · 5s · ~72 credits") plus a Generate and Refine prompt button.
Asset
A single generated image or video — what the studio saves to its database + downloads to its local folder so it survives upstream CDN URL rotation.
Pending bubble
The assistant bubble that appears immediately after you click Generate. Says "🎬 Rendering video… feel free to go chat with models and generate images while this renders…" for video, or "🖼️ Generating image… feel free to go chat…" for image. Swaps for the result card when the upstream call resolves.
Render queue chip
The pulsing orange 🎬 N chip in the top bar that counts in-flight video renders. Click it to jump to the latest pending bubble in the chat. Flips green "ready!" briefly when a video finishes while you're elsewhere.
Compliance gate
The safety check every prompt goes through before reaching the upstream image/video APIs. The upstream returns {status: "Success", result: "<text>"} — the result field carries the actual decision ("ok" = approved, anything else = rejected with that text as the reason). If rejected you'll see a red compliance-refusal bubble with the upstream's reason quoted verbatim — rephrase your prompt and try again. (Pre-v97 this gate was a silent no-op because the endpoint URL was malformed; that bug is fixed.)
Persona
The AI character that responds to you in companion chat. Each persona reads the model's profile, has a personality, remembers the conversation, and self-classifies every message into one of three intents: chat (just answer), photo (fire a selfie / video directly — see below), or redirect (send the user to the studio composer with a 🪄 Open in Studio button when the ask is beyond a phone selfie).
Selfie / photo
What the persona generates when you ask for something a phone camera could capture — at the beach, gym selfie, mirror selfie, etc. The persona writes a third-person description of the scene and the chat endpoint fires the image-gen (or video-gen) API directly — it does NOT route through the studio composer. The result lands inline in the chat and in the model's gallery. Image vs video is auto-detected from the action description + your prompt keywords (video/clip/movie/film/animation/animate/moving/motion/ cinematic/dancing/walking/talking/short film) — video keywords fire Seedance, everything else fires Qwen image.
Open in Studio
A 🪄 Open in Studio button the persona replies with when your request is beyond a selfie (needs a Ferrari, a dragon, another person, etc.). Clicking it navigates you to the studio with your prompt pre-filled and the model's profile loaded — the planner polishes it, then Generate fires the right upstream. This is the only path that goes through the studio composer — selfies and videos in chat fire directly from model-chat.php, they never touch the composer.
Credits
Your balance for generations. Images cost 12 credits (Qwen Image 3.0 Pro, 2K, 1:1) and videos cost 85 credits (Seedance 2.0 Fast, 720p, 16:9, 5s). Your chip in the top bar refreshes after every generation. Out of credits? Chat, gallery browsing, and history still work — only generation stops.
Seedance / Qwen
The upstream models behind the generations. Seedance 2.0 Fast is the video model; Qwen Image 3.0 Pro is the image model. The plan card shows which one + the cost in credits.
Lightbox
The full-size viewer that opens when you click any image or video. Has the model's name, asset kind, resolution, aspect ratio, and credit cost. Close with ✕, the dark backdrop, or Esc.
sessionStorage
Where the studio stashes short-term session data (your active model + any in-flight video jobs). Survives F5 reload and navigation to Help / back. Cleared when you close the tab or sign out.
Video-ready modal
The small pop-up "🎬 Your video is ready" that fires when a video you started finishes rendering while you're in companion chat. Shows a muted thumbnail of the video + a Watch button that opens the lightbox. Does not fire in studio mode — the result card is already in front of you there, so a pop-up would be redundant.
Admin login
A separate sign-in flow for users with the admin role. The URL is /login.php?admin=1 (or /admin.php — it redirects there automatically). The page shows InkedStudio2 ADMIN branding with a small red ADMIN pill. If you're signed in as a regular user and try to reach /admin.php, the server redirects you back to the admin login with a clear "you need an admin-role account" message instead of showing the raw 403 Forbidden page.
Animate (▶ Simple / ✨ Custom)
Two ways to turn a still image into a video. Hover a gallery thumbnail to see both buttons: ▶ Simple Animate fires the image-to-video call immediately with a generic cinematic motion prompt (no conversation, ~90s, ~85 credits). ✨ Custom Animate navigates you to the studio with the picked image as the source; you describe the motion you want, the planner polishes it, Generate fires the image-to-video call using your exact source image. Custom Animate always produces a video, regardless of what the planner classifies — this is enforced in the studio code so a prompt like "hulk smash" doesn't silently route through the image endpoint.

Troubleshooting

"Invalid credentials" when I sign in

Username or password is wrong. Usernames are lowercase, no spaces. If you're sure they're right, ask your demo owner to reset it.

Help page says "Not signed in" even though I am

Fixed. The Help page used to always render the "Not signed in" branch because it didn't load bootstrap.php (so current_user() was undefined and the function_exists() check returned false). It now loads bootstrap.php and the status pill correctly shows Signed in as <username> · ← Back to studio.

I get "Forbidden — admin role required" when I try /admin.php

Fixed. The old behaviour was a raw 403 page with no way out. The new flow: require_admin() redirects you back to the login page with ?admin=1&notadmin=1&as=<your-username> so you see InkedStudio2 ADMIN branding + a clear "You're signed in as a regular user. To reach the admin area you need to sign in with an account that has the admin role (typically inabon)." message + your current username pre-filled. Sign in as inabon (or whichever admin account you have) and you'll land on the admin panel.

Sign out sent me to the wrong login page

By design, but explainer:

If you're stuck on the wrong page, just type the URL you want directly — both pages accept any valid username + password.

Custom Animate drops me back to the studio welcome bubble instead of asking what motion I want

Fixed. If the asset you tried to animate is gone (deleted, belongs to another user, network blip), the URL navigation now sends you to ?animate_failed=N&reason=... and the studio renders a dedicated "⚠️ Couldn't load that asset" bubble pointing you at the gallery below. Pick a different still image and try again.

Lightbox / gallery / modal doesn't open when I click

Try Ctrl+Shift+ R to force-reload — a botched module load can leave the click handlers unwired. If that doesn't help, check the browser console (F12 → Console) for errors and paste them to your demo owner.

Studio looks blank / buttons don't respond

Hit Ctrl+Shift+R (or Cmd+Shift+R on a Mac) to force-reload. Your browser cached an old version of the studio module.

The render-queue chip disappeared after I navigated to Help

Shouldn't happen — the chip state is persisted in sessionStorage and survives Help-page navigation, manual refresh, and tab switches within the session. If it does disappear, your render is probably older than 10 minutes and was dropped as stale. The upstream fetch was almost certainly aborted when you navigated away.

Inline video is black / won't play

Click the centered ▶ Click to watch button on top of the video. That opens the video in the lightbox, which is more robust than the inline player.

I clicked Custom Animate and it generated an image instead of a video

Fixed in v97. The studio now forces video mode for any Custom Animate flow, even if the prompt planner defaulted to image. The plan card correctly shows "Seedance 2.0 Fast · 16:9 · 720p · 5s · 85 credits". If you still see "Qwen Image" on the plan card, hard-reload — the previous tab may be using a cached version.

Animate failed with "Couldn't load that asset"

The image you tried to animate is no longer available — it may have been deleted, or the link was broken. Pick a different still image from the gallery strip below and click ✨ Custom Animate on that one.

Animation stuck / no progress after 90 seconds

The upstream has a ~90s timeout. If the chip is still pulsing after 2 minutes, the render likely failed silently. Refresh the page — the pending job will be cleared if it's older than 10 minutes.

Compliance refusal (red bubble)

The upstream safety service rejected your prompt. The bubble shows the exact reason the upstream gave (e.g. "This prompt contains illegal, violent, or harmful content…"). Try rephrasing — most refusals are for prompts the upstream flags as provocative. The studio doesn't add its own refusals; whatever you see came from upstream.

Pre-v97 bug: the compliance gate URL was malformed (${API_ROOT_V1}/compliance/check — a literal JS template string PHP didn't expand), so every prompt sailed through and the upstream image/video APIs were the only thing standing between blocked prompts and the user. That's fixed now — if a prompt that used to "work" suddenly gets a compliance refusal, the upstream itself is rejecting it, not the studio.

The model-card image count doesn't match the thumbnails

Fixed in v97 — the count under each model card now counts the actual assets (images + videos) in that model's gallery. If you ever see it disagree again, hit Ctrl+Shift+ R to force-reload — your browser may be on an older cached module.

Compose doesn't fire — the button stays disabled

The Send button disables while the planner / an upstream call is in flight. Wait a couple seconds — if it stays disabled after the loading bubble disappears, hit F5. A previous botched round-trip can leave the studio in a busy state until the page reloads.

My persona keeps replying with "Open in Studio" instead of a selfie

The persona routes to Studio when your ask is beyond a phone-selfie — needs a Ferrari, on Mars, fighting a dragon, with a celebrity, etc. Try a more selfie-able prompt ("at the beach", "at the gym", "in a red dress") and the persona will send a photo directly.

The persona uses the wrong emoji

Shouldn't happen — male personas never use 😘 💋 😏 💕 (those read as feminine-coded flirt emojis). If you spot one, hit F5 and try again.

"No credits" or generation refused

You're out of credits. Ask your demo owner to top up. Everything else (chat, gallery, history) still works.

Tooltips don't appear

If the ? tooltips don't show, your browser may be blocking JavaScript or you've got an extension hiding them. Try in a private/incognito window with no extensions. On the gallery strip, the action buttons (Animate, Custom Animate, Delete) use the browser's native tooltip instead — same info, slightly different style.

Still stuck?

Ask your demo owner. They're the only one with admin access to fix server-side problems.