AI viewer interactions
An AI image feature for your channel, with you approving every single one. This guide covers the setup, the settings that matter, and what to check when nothing appears.
Included with Premium
An AI pack adds it to Standard
No extra app for viewers
In short
You are adding an image request line to your channel. A viewer writes a prompt, on your page or from the stream itself, and you approve the result in the dashboard; the newest image shows up in your scene. No app for viewers, and nothing posts without you.
Viewers ask
From your page, a donation or cheer whose message carries your prefix, or a channel-point redemption. Each one is a single image.
You approve
Nothing airs until you press approve. An unanswered request closes after 6 hours.
It appears on stream
One browser source in OBS shows the newest approved image; it replaces the previous one.
It costs credits
Premium includes 50 credits a month. One standard image is one credit, and a heavier model takes more of them.
01
How it works
A viewer sends a prompt from the page, a donation message, a cheer or a channel-point redemption; the model renders it, and nothing reaches the stream until you approve it.
01
A viewer asks
They open /c/yourchannel (your own address, once you are signed in) and type a prompt. They never need an account here: signing in with Twitch is what proves who is asking. Four routes reach the same queue: the page, a donation or cheer that starts with your prefix, or a channel-point redemption. You switch each one on or off. You also decide how old the Twitch account must be, and who may ask at all.
02
You approve
The prompt and the generated image land in your dashboard. Nothing reaches the stream until you press approve. A request you leave unanswered for 6 hours closes itself. The image is dropped, and the credits stay spent: the model has already been paid for it, so there is nothing to refund. If you would rather read the text first, switch on prompt review: nothing is generated until you approve the prompt, and one you refuse costs nothing.
03
It appears on stream
The approved image is shown by the browser source in OBS. The newest one replaces the previous one, so your scene never fills up.
02
Setup
The first two get you live. The rest are the ones people skip and then file a ticket about.
01
Enable it for your channel
In the dashboard under Interactions switch the feature on. It is per channel, and it needs either an active Premium plan or an AI pack on a Standard plan: without one of the two the panel shows what the feature would do, but requests are refused.
02
Add the browser source to OBS
Copy the overlay URL from the panel. It looks like https://hostvortex.de/overlay/interactions?token=…. In OBS: Sources → + → Browser, paste the URL, size it to the corner of your scene, and leave Shutdown source when not visible off so it does not reload during a stream. The overlay is transparent and has no controls of its own: it only ever shows the approved image.

OBS: Sources → + → Browser.
03
Decide who may ask
Minimum Twitch account age, how many requests one viewer may send per day, how many the channel accepts per day, and a pause switch for the moments you do not want it. All four are in the panel; the defaults are deliberately conservative.
04
Know what moderation does
Two automatic checks run before anything reaches you, both through OpenAI's omni-moderation classifier, the same category set that covers sexual content, hate, harassment, violence, self-harm and illegal activity. 1. The prompt is classified first: a refusal there means nothing is generated, nothing is charged, and the viewer is told only that it was refused. 2. The image is classified after it is rendered: an image the classifier rejects is never queued and never aired, but it has already been generated and paid for, so that one image stays spent. If the classifier cannot answer at all (an outage, or the free tier running out), the request is treated as unapproved, not as allowed: it waits for you. Nothing gets onto your stream because a safety service was down, and refusals never explain themselves to the viewer, so nobody can probe the filter by narrowing a prompt.
05
Choose the AI label
Approved images carry a small label drawn in the corner of the image:AI by default. You can reword it to fit your scene. You can also switch it off: it is allowed, and the panel warns you when you do. The disclosure then becomes yours, because the EU AI Act puts it on whoever publishes synthetic content, and Twitch's rules on AI-generated content apply to your channel either way.
06
Optionally, let donations, cheers and points trigger it
Three paid routes, all off until you set them. Donations: if a message starts with your prefix (generate: by default) the rest of it becomes a prompt; Streamlabs and StreamElements both work once connected. Cheers: set how many Bits one image costs; the cheer's message has to start with your prefix, because a cheer is support and the rest of chat should stay chat. Channel points: set a reward price and we create and keep that reward priced for you — a redemption needs no prefix, since the viewer already picked that reward. Say so in your channel description, because a viewer has to know a donation, a cheer or a redemption can trigger a generation, and that whether it does is your call.
03
Allowance & models
A generation does not always cost one image. Faster models are cheaper, slower and more detailed ones cost more, and the panel shows the multiplier before you pick one.
The Premium plan includes 50 AI credits per calendar month. One credit is one standard image; a heavier model spends more credits per render, and songs and video will spend more again out of this same pool; there is no separate budget for them. An add-on pack adds 1,750 credits in the XL size or 300 credits in the small size, and each size can be stacked up to 10 times. On a Standard plan there is no included allowance, so the pack is the allowance: 1,750 or 300 credits a month per pack. Unused credits do not carry over, nothing sits in an account you can top up, and when the month's allowance is gone requests are refused until the next month. Nothing is charged for a refused request.
| Model | Cost per image |
|---|---|
Recraft Flash recraft/recraft-v4.1-flash | 0.8× |
Standard black-forest-labs/flux-3-image-klein | 1× |
Muse meta/muse-image | 1.1× |
Sunburst openai/gpt-image-2.5-sunburst | 1.5× |
Seedream Flash bytedance-seed/seedream-5-0-flash | 2× |
Qwen Image Turbo qwen/qwen-image-2.1-turbo | 2× |
Balanced openai/gpt-5.4-image-2 | 2× |
OpenAI Mini openai/gpt-5-image-mini | 3.6× |
Fast google/gemini-3.1-flash-lite-image | 3.6× |
Qwen Image Pro qwen/qwen-image-2.1-pro | 5× |
FLUX 3 black-forest-labs/flux-3-image | 5.2× |
Studio openai/gpt-5-image | 5.5× |
Sorted by cost per image. 1× is the unit the monthly allowance is counted in.
Real renders of the two example prompts a viewer sends: a silly one and a hype scene. Click any image to see it full size; the multiplier is what one generation takes from the monthly allowance.
04
When it breaks
Almost every report is one of these. Work down the list before assuming the feature is off.
01
Nothing shows on stream
Check the browser source is not hidden by another scene item, that the URL still carries the token from the panel, and that the feature is switched on. The overlay shows nothing at all when the channel has it disabled.
02
Requests arrive but no image
A generation that fails at the provider is refunded to your allowance; one the classifier rejects after it was rendered is not, because it was already paid for. Tell the viewer to try a different prompt. If every request fails, the model may have been retired. The dashboard names the model in use.
03
Prompt refused
Moderation is fail-closed on purpose. The refusal reason is not shown to the viewer, so it cannot be used to probe the filter.
04
Donations do nothing
They only count with your prefix, only while the channel has the feature on, and on StreamElements only while the stored token is valid. Reconnect if the integrations page says the connection needs attention.
The short version
Everything else is tuning: limits, the label and donations. You can change any of it later without redoing the OBS source.
A request left unanswered for 6 hours closes itself and the image is not kept; prompts and the content they produced are deleted no later than 30 days after that.