Taupe Aloof Editorial Portrait A quiet fashion editorial portrait: straight-on framing, a plain black sleeveless top, a cool distant gaze and soft muted light against a warm taupe wall; you choose who sits for it.
AI image styles
No style matches yet — try other words.
Shadow Agent Mask Hanfu A tall full-body figure in layered modern black hanfu and metal plates, wearing a gunmetal ritual mask with crimson eyes on pure white; you choose the animal or flower the mask is shaped after.
Overhead Fisheye Eyewear A luxury eyewear campaign shot from directly above through a fisheye lens: giant black sunglasses, a huge face and a tiny distant body on a white studio floor; you choose who wears them.
Neon Cel Ember Duel Anything you name stands as a dark silhouette on a tilted hillside in a hand-painted 1980s anime cel, with ultramarine, hot pink and rising orange streaks on grainy film; you choose the subject.
Tired Desk Cartoon Anyone or anything drawn as a worn-out office character in oversized glasses, slumped at a messy wooden desk beside a computer in bold ink cartoon style; you choose who is having the long day.
Halo Blob Doodle Mascot Any character or object turned into a tiny chubby doodle mascot with a bold black outline, dot eyes and rosy cheeks, sitting on a flat orange halo on cream; you choose who it is.
Grainy Pastel Bold Icon One bold simple shape drawn in grainy stippled pastel with fuzzy edges and pale highlights on pure white, cheerful as a children's print; you choose the object.
Worn Costume Reference A film costume reference photo from head to toe, with layered worn fabric, scuffed leather and soot on a plain gray backdrop; you name the character.
Lanky Brush Pen Doodle A funny lanky doodle in black brush pen on white paper, with wobbly lines, a deadpan face and scribbled black clothes; you name who gets drawn.
Periwinkle Hill Matte A tall matte painting with one silhouette on a far hill, wrapped in periwinkle haze under a huge empty sky, above sunlit grass and dark boulders; you choose what stands on the hill.
Chunky Brawler 3D A stocky mobile game hero in soft smooth 3D, with big hands, a fierce look and simple oversized gear on periwinkle blue; you describe the character.
Tufted Wool World A tabletop world made entirely of tufted yarn and felt pom-poms, with fuzzy clouds against a deep green ground; you choose what stands in the middle of it.
Stock & fund logos
Circle logos for stock tickers, ETFs, and funds — ideal for watchlists, portfolio dashboards, and price tickers. Served from edge servers close to your visitors.
/stock/{symbol}.svg/stock/apple.svg
/stock/nvidia.svg
/stock/tesla.svg
/stock/microsoft.svg
/stock/amazon.svg
/stock/alphabet.svg
/stock/meta-platforms.svg
/stock/netflix.svg
/stock/berkshire-hathaway.svg
/stock/jpmorgan-chase.svg
/stock/visa.svg
/stock/mastercard.svg
/stock/walmart.svg
/stock/coca-cola.svg
/stock/walt-disney.svg
/stock/advanced-micro-devices.svg
/stock/taiwan-semiconductor.svg
/stock/samsung.svg
/stock/toyota.svg
/stock/fpt-corporation.svg
/stock/vietnam-dairy-products.svg
/stock/hoa-phat-group.svg
/stock/joint-stock-commercial-bank-for-foreign-trade-of-vietnam.svg
/stock/vingroup-joint-stock-company.svg
/stock/dragon-capital.svg
/stock/vinacapital-vietnam.svg
/stock/vanguard.svg
/stock/blackrock.svg
Notes
- Company slugs follow TradingView naming, like
appleordragon-capital. - Missing symbols fall back to a custom uploaded icon, then a labeled placeholder — never a broken image.
- Served as SVG (a few as PNG), cached at the edge for one year.
Crypto logos
Circle logos for cryptocurrencies, addressed by ticker — ideal for wallets, exchange dashboards, and price tickers. Served from edge servers close to your visitors.
/crypto/{symbol}.svgNotes
- Crypto uses plain lowercase ticker symbols like
btc,eth,sol— the top ~500 coins by market cap are preloaded. - Missing symbols fall back to a custom uploaded icon, then a labeled placeholder — never a broken image.
- Served as SVG (a few as PNG), cached at the edge for one year.
Brand logos
SVG logos for thousands of tech and consumer brands, addressed by plain brand name — for integration pages, tech-stack lists, payment badges, and dashboards.
/brand-logo/{name}.svgNotes
- Names are lowercase brand slugs like
google,nike,openai— uppercase requests are normalized automatically. - Full-color logos where available, official brand-color icons otherwise.
- Includes 160+ Vietnamese brands — banks, e-wallets, telcos, media, retail — like
vietcombank,momo,viettel,vinfast. - Missing names fall back to a custom uploaded icon, then a labeled placeholder — never a broken image.
- Served as
image/svg+xml, cached at the edge for one year.
Website favicons
The favicon of any website, addressed by hostname — for link previews, bookmark lists, referrer tables, and "connected apps" screens.
Example: /favicon/google_com.svg — hostname with dots replaced by underscores.
/favicon/{host_slug}.svgNotes
- Slug is the hostname with
.replaced by_:google_com,vietcombank_com_vn. Any extension in the URL works; the response is the format on file (PNG, ICO, SVG…). - Resolved from our own store first, then fetched once from favicon.im and cached permanently — the first request for a new host is slower.
- Hosts with no favicon return a labeled placeholder — never a broken image. Upload a better version via the Contribute form.
- Served with the file's real
Content-Type, cached at the edge for one day.
Country flags
SVG flags for every country, addressed by ISO code — rectangular by default, or circular with the -circle suffix to match the stock & crypto logos.
Example: /flags/vn.svg — lowercase ISO 3166-1 alpha-2 code; add -circle for the round version.
/flags/{code}.svg/flags/{code}-circle.svgNotes
- Codes are lowercase ISO 3166-1 alpha-2 like
vn,us,jp— regional flags (gb-eng,es-ct) andeu/unwork too. - Rectangular (4:3) by default;
/flags/{code}-circle.svgserves the circular version. - Unknown codes return a labeled placeholder — never a broken image.
- Served as
image/svg+xml, cached at the edge for one year.
Stock image thumbnails
Preview images for stock-media assets, keyed by source site and asset id. The optional -{size} suffix resizes to that width.
Example: /shutterstock/2148156765-600.jpg — Shutterstock asset 2148156765 at width 600.
/{site}/{id}.jpg/{site}/{id}-{size}.jpg
Shutterstock/shutterstock/1232588239.jpg
Freepik/freepik/3064875.jpg
Adobe Stock/adobestock/1585015388.jpg
Envato Elements/envato/SSNP7B2.jpg
iStock/istockphoto/2196019693.jpg
123RF/123rf/323617074.jpg
/iconscout/13487097.jpg
Designi/designi/20cbadb2c811e565.jpg
Supported sites
shutterstockvshutterfreepikvfreepik
adobestockistockphotodepositphotosdreamstime
123rfalamyrawpixelenvato
vecteezyflaticoniconscoutpngtree
lovepikmotionarraystoryblockscreativefabrica
artgridartlist_footageepidemicsounddesigni
designbrbaixardesigncraftworkmockupcloud
mrmockupyellowimagesfootagecrateui8
pixedenuplabspixelbuddha
Notes
- Audio sources return a waveform placeholder image.
- Unknown or unavailable assets return a labeled placeholder — never a broken image.
- Successful renders are cached at the edge for one year, keyed by full URL.
Text to image
Renders an SVG image from arbitrary text — handy for placeholders, Open Graph fallbacks, and quick banners.
Try it
Usage
/bytext?text=<your text>&w=600&h=400&bg=cccccc&fg=333333&size=48Parameters
| Parameter | Default | Description |
|---|---|---|
text | (required) | Text content. URL-encoded. Use %0A for line breaks. |
w | 600 | Width in pixels (1–4000). |
h | 400 | Height in pixels (1–4000). |
bg | cccccc | Background color — hex 3/6/8 chars, with or without #. |
fg | 333333 | Text color — hex. |
size | auto | Font size in px. Leave blank to auto-fit to the canvas. |
Examples
/bytext?text=Hello%20World
?text=Custom%20size&w=400&h=200&bg=222&fg=fff&size=56
?text=Line%201%0ALine%202%0ALine%203&bg=2a6df4&fg=fff
Notes
- Returns
image/svg+xml— works with<img>,background-image, etc. - Cached at the edge for one year, keyed by full URL.
- Font is
system-ui— rendered with the viewer's system font.
MCP server
gimgs speaks the Model Context Protocol, so Claude, Cursor or any MCP client can use it as a tool. One endpoint hosts several servers — the credentials you send pick which one you get:
| Server | For | Credentials | What the agent can do |
|---|---|---|---|
Publicgimgs-cc0-images | Anyone | None | Search the CC0 image library and get hotlinkable URLs. Read-only. |
Designgimgs-design | Signed-in users | API key gk_… | Edit the Photosoft project you have open — live, together with you — plus everything the public server does. |
Public server: CC0 images
Read-only and free, no key needed. Every result carries ready-to-hotlink CDN URLs, so an agent can search images and drop them straight into whatever it is building.
/mcpTools
search_cc0_images— keyword search over the CC0 library, 24 results per page, withsort(curated / recent / popular) and an optionalcategoryfilter.get_cc0_image— one image by id, with every size variant (widths 100–1024) and its detail-page URL.
Connect
Claude Code:
claude mcp add --transport http gimgs https://gimgs.net/mcp
Or any client that speaks Streamable HTTP, via JSON config:
{
"mcpServers": {
"gimgs": { "type": "http", "url": "https://gimgs.net/mcp" }
}
}
- Every result ships ready-to-hotlink JPG URLs:
image_url(width 1024),thumb_url(350) and asizesmap. - Images are CC0 — personal or commercial use, no attribution required.
Design server: edit Photosoft together with an agent
Open a project in Photosoft, open Agents in the right dock and press Enable agents. From then on an agent connected with your API key sees that project and edits it with you: every change it makes lands as one History step, labelled with the agent's name, that you undo like your own.
/mcp/mcp/gk_YOUR_KEYThe first form takes the key in a header (Authorization: Bearer gk_…); the second puts it in the URL, for clients that cannot send custom headers. Treat that URL like a password.
Get a key
Create one under Profile → API. Any key opens the design server — there are no scopes yet, so a key you hand to an agent can edit every project you enable Agents on. Revoke it there to cut the agent off.
Tools
design_sessions— the projects you have open with Agents enabled: id, name, canvas size, rev, and which agents are listening.design_get— the document as structure: every layer with id, type, box, visibility, text and colours, plus the selection and the current rev. No pixels.design_preview— a JPEG or PNG render of the canvas or of one layer, so the agent can look at its own work.design_apply— a batch of ops (add_text,add_image,add_shape,add_path,add_gradient,add_svg,add_texture,brush_path,path_boolean,offset_path,stroke_to_path,transform,rasterize,flip,measure_text,find_fonts,update_layer,delete_layer,reorder,select,mask,filter,resize_canvas,style,group,ungroup) applied as one undo step; takeslabel,agent_nameandbase_rev.design_events— long-poll of what happened since a sequence number: your edits, undo / redo, selection, Agents-chat messages, other agents' changes, pause / resume.design_say— a line into the Agents chat of your editor.design_upload_url— a presigned upload URL for an image on the agent's own machine; the agent PUTs the file, then places it withadd_image.design_schema— the exact fields and limits of every op.- Plus the public tools, so the agent can search CC0 images and place them with
add_image.
Connect
Claude Code (key in a header):
claude mcp add --transport http gimgs-design https://gimgs.net/mcp --header "Authorization: Bearer gk_YOUR_KEY"
claude.ai on the web or phone, and other clients without custom headers: add a custom connector with the key in the URL.
https://gimgs.net/mcp/gk_YOUR_KEY
JSON config:
{
"mcpServers": {
"gimgs-design": {
"type": "http",
"url": "https://gimgs.net/mcp",
"headers": { "Authorization": "Bearer gk_YOUR_KEY" }
}
}
}
Then just ask — “make the headline bigger”, “add the Stripe logo top left” — the agent finds the open project itself.
Working together
- One
design_applyis one History step named “[agent] label”; Ctrl+Z undoes the whole batch. - Layers you locked, or are dragging or typing in, are refused (
locked/busy) — the agent retries later. - With
base_rev, layers you changed in the meantime come back asstaleinstead of being overwritten. - Pause stops writes while the agent can still read; Set checkpoint / Revert undo everything since the mark.
- The Agents chat reaches an agent only while it is polling
design_events— the panel says “listening” when one is. Otherwise tell the agent, in its own chat, to listen. - Close the tab and the session is kept for 60 minutes; reopening the project reconnects it.
Protocol notes
- Streamable HTTP, stateless JSON-RPC 2.0 — each POST is an independent request; no session id, no SSE stream.
- Wrong or revoked credentials return 401 and never fall back to the public server.
- Tool failures come back as a tool result with
isErrorand{ error, message }. Design codes:no_session,browser_offline,paused,locked,busy,stale,tab_not_active,timeout.
Contribute an icon
Found a symbol that only shows a placeholder? Submit the missing icon here — contributions are reviewed before going live, usually within a day.
Guidelines
- Only submit images that are publicly available and appropriate to represent the symbol — official logos, identification use only.
- Square aspect ratio works best; SVG keeps it crisp at every size.
- Submissions are moderated — approved icons replace the placeholder at the matching URL.

































































